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,  6.73 entities/s]
📁 Traversing directories for ds005025 : 7 entities [00:00,  7.54 entities/s]
📁 Traversing directories for ds005025 : 9 entities [00:01,  8.65 entities/s]
📁 Traversing directories for ds005025 : 11 entities [00:01,  9.48 entities/s]
📁 Traversing directories for ds005025 : 13 entities [00:01,  9.23 entities/s]
📁 Traversing directories for ds005025 : 15 entities [00:01,  9.84 entities/s]
📁 Traversing directories for ds005025 : 17 entities [00:02,  8.08 entities/s]
📁 Traversing directories for ds005025 : 19 entities [00:02,  8.26 entities/s]
📁 Traversing directories for ds005025 : 21 entities [00:02,  7.66 entities/s]
📁 Traversing directories for ds005025 : 23 entities [00:02,  8.42 entities/s]
📁 Traversing directories for ds005025 : 27 entities [00:02, 11.40 entities/s]
📁 Traversing directories for ds005025 : 31 entities [00:03, 13.32 entities/s]
📁 Traversing directories for ds005025 : 33 entities [00:03, 12.66 entities/s]
📁 Traversing directories for ds005025 : 36 entities [00:03, 11.75 entities/s]
📁 Traversing directories for ds005025 : 39 entities [00:03, 11.13 entities/s]
📁 Traversing directories for ds005025 : 41 entities [00:04, 11.98 entities/s]
📁 Traversing directories for ds005025 : 43 entities [00:04,  8.89 entities/s]
📁 Traversing directories for ds005025 : 45 entities [00:04,  9.58 entities/s]
📁 Traversing directories for ds005025 : 47 entities [00:04,  9.48 entities/s]
📁 Traversing directories for ds005025 : 52 entities [00:05, 12.92 entities/s]
📁 Traversing directories for ds005025 : 54 entities [00:05, 12.12 entities/s]
📁 Traversing directories for ds005025 : 56 entities [00:05, 11.97 entities/s]
📁 Traversing directories for ds005025 : 58 entities [00:05, 11.29 entities/s]
📁 Traversing directories for ds005025 : 104 entities [00:05, 70.44 entities/s]
📁 Traversing directories for ds005025 : 150 entities [00:06, 108.26 entities/s]
📁 Traversing directories for ds005025 : 196 entities [00:06, 132.50 entities/s]
📁 Traversing directories for ds005025 : 266 entities [00:06, 166.65 entities/s]
📁 Traversing directories for ds005025 : 336 entities [00:07, 189.66 entities/s]
📁 Traversing directories for ds005025 : 406 entities [00:07, 203.29 entities/s]
📁 Traversing directories for ds005025 : 476 entities [00:07, 226.51 entities/s]
📁 Traversing directories for ds005025 : 546 entities [00:07, 241.64 entities/s]
📁 Traversing directories for ds005025 : 594 entities [00:07, 263.86 entities/s]
📁 Traversing directories for ds005025 : 622 entities [00:08, 238.06 entities/s]
📁 Traversing directories for ds005025 : 690 entities [00:08, 232.38 entities/s]
📁 Traversing directories for ds005025 : 746 entities [00:08, 272.47 entities/s]
📁 Traversing directories for ds005025 : 777 entities [00:08, 228.69 entities/s]
📁 Traversing directories for ds005025 : 820 entities [00:08, 229.00 entities/s]
📁 Traversing directories for ds005025 : 845 entities [00:09, 186.26 entities/s]
📁 Traversing directories for ds005025 : 932 entities [00:09, 237.65 entities/s]
📁 Traversing directories for ds005025 : 1030 entities [00:09, 285.88 entities/s]
📁 Traversing directories for ds005025 : 1124 entities [00:10, 278.94 entities/s]
📁 Traversing directories for ds005025 : 1198 entities [00:10, 284.15 entities/s]
📁 Traversing directories for ds005025 : 1276 entities [00:10, 294.08 entities/s]
📁 Traversing directories for ds005025 : 1332 entities [00:10, 322.42 entities/s]
📁 Traversing directories for ds005025 : 1367 entities [00:10, 296.59 entities/s]
📁 Traversing directories for ds005025 : 1398 entities [00:11, 223.27 entities/s]
📁 Traversing directories for ds005025 : 1442 entities [00:11, 205.88 entities/s]
📁 Traversing directories for ds005025 : 1466 entities [00:11, 203.11 entities/s]
📁 Traversing directories for ds005025 : 1487 entities [00:11, 128.87 entities/s]
📥 Retrieving up to 1487 files (5 concurrent downloads). 
.bidsignore:   0%|                                   | 0.00/92.0 [00:00<?, ?B/s]
                                                                                
participants.tsv:   0%|                               | 0.00/945 [00:00<?, ?B/s]
                                                                                
CHANGES:   0%|                                      | 0.00/1.16k [00:00<?, ?B/s]
                                                                                
dataset_description.json:   0%|                       | 0.00/306 [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_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-CRMBM1_UNIT1_label-disc.nii.gz:   0%|           | 0.00/73.2k [00:00<?, ?B/s]
                                                                                

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

                                                                                

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

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


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

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

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

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

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


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

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

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

                                                                                
                                                                                
sub-NTNU2_UNIT1_label-disc.json:   0%|                | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-NTNU3_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_acq-anat_TB1TFL_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.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.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-NTNU3_UNIT1_label-SC_seg.nii.gz:   0%|          | 0.00/86.1k [00:00<?, ?B/s]
sub-UCL1_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-CRMBM1_T2starw.json:   0%|                      | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL2_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
                                                                                
sub-UCL3_UNIT1_label-disc.nii.gz:   0%|             | 0.00/73.2k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_UNIT1.json:   0%|                        | 0.00/2.10k [00:00<?, ?B/s]
                                                                                

sub-UCL3_UNIT1_label-disc.json:   0%|                 | 0.00/198 [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_inv-2_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_T2starw.nii.gz:  56%|██████▋     | 611k/1.06M [00:00<00:00, 5.60MB/s]

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

                                                                                
sub-CRMBM1_UNIT1.nii.gz:   0%|                      | 0.00/26.6M [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/15.6M [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/17.5M [00:00<?, ?B/s]

sub-CRMBM1_UNIT1.nii.gz:   1%|▏             | 305k/26.6M [00:00<00:10, 2.74MB/s]
sub-CRMBM1_rec-uncombined1_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 271k/17.5M [00:00<00:06, 2.67M
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 442k/15.6M [00:00<00:04, 3.88M



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

sub-CRMBM1_UNIT1.nii.gz:   4%|▌            | 1.15M/26.6M [00:00<00:04, 6.15MB/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.28M/17.5M [00:00<00:02, 7.21




sub-CRMBM1_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.43M/15.6M [00:00<00:01, 7.43




                                                                                

sub-CRMBM1_UNIT1.nii.gz:   7%|▉            | 1.88M/26.6M [00:00<00:03, 6.59MB/s]



sub-CRMBM1_rec-uncombined1_T2starw.nii.gz:  29%|▎| 234k/805k [00:00<00:00, 2.13M
                                                                                

sub-CRMBM1_UNIT1.nii.gz:   9%|█▏           | 2.52M/26.6M [00:00<00:03, 6.62MB/s]


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.97M/17.5M [00:00<00:02, 6.14
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.16M/15.6M [00:00<00:02, 6.27



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



                                                                                
sub-CRMBM1_UNIT1.nii.gz:  14%|█▊           | 3.64M/26.6M [00:00<00:02, 8.40MB/s]


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.70M/17.5M [00:00<00:02, 6.68
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.34M/15.6M [00:00<00:01, 8.35
sub-CRMBM1_UNIT1.nii.gz:  21%|██▋          | 5.60M/26.6M [00:00<00:01, 12.4MB/s]


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 4.46M/17.5M [00:00<00:01, 10.6
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 5.34M/15.6M [00:00<00:00, 12.4



sub-CRMBM1_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/826k [00:00<?, ?B/s]
sub-CRMBM1_UNIT1.nii.gz:  28%|███▋         | 7.45M/26.6M [00:00<00:01, 14.7MB/s]


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.30M/17.5M [00:00<00:00, 13.4
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 7.17M/15.6M [00:00<00:00, 14.6




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



sub-CRMBM1_rec-uncombined2_T2starw.nii.gz:  57%|▌| 472k/826k [00:00<00:00, 4.83M
                                                                                
sub-CRMBM1_rec-uncombined3_T2starw.nii.gz:  25%|▏| 221k/886k [00:00<00:00, 2.25M


sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  44%|▍| 7.63M/17.5M [00:00<00:00, 12.7

sub-CRMBM1_UNIT1.nii.gz:  33%|████▎        | 8.88M/26.6M [00:00<00:01, 13.6MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 8.62M/15.6M [00:00<00:00, 13.4
                                                                                
sub-CRMBM1_rec-uncombined4_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]



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

sub-CRMBM1_UNIT1.nii.gz:  38%|████▉        | 10.2M/26.6M [00:01<00:01, 12.0MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  64%|▋| 9.97M/15.6M [00:00<00:00, 11.5
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 10.4M/17.5M [00:01<00:00, 12.7

sub-CRMBM1_UNIT1.nii.gz:  44%|█████▋       | 11.7M/26.6M [00:01<00:01, 13.0MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 11.9M/15.6M [00:01<00:00, 13.8
sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/777k [00:00<?, ?B/s]
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 12.3M/17.5M [00:01<00:00, 14.7

sub-CRMBM1_UNIT1.nii.gz:  51%|██████▋      | 13.6M/26.6M [00:01<00:00, 14.8MB/s]
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 13.8M/15.6M [00:01<00:00, 15.4
sub-CRMBM1_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/841k [00:00<?, ?B/s]



sub-CRMBM1_rec-uncombined4_T2starw.nii.gz:  48%|▍| 374k/777k [00:00<00:00, 3.81M
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 14.1M/17.5M [00:01<00:00, 15.8

sub-CRMBM1_UNIT1.nii.gz:  57%|███████▍     | 15.3M/26.6M [00:01<00:00, 15.7MB/s]



                                                                                
sub-CRMBM1_inv-1_part-mag_MP2RAGE.nii.gz:  99%|▉| 15.4M/15.6M [00:01<00:00, 14.3




sub-CRMBM1_rec-uncombined5_T2starw.nii.gz:  48%|▍| 407k/841k [00:00<00:00, 3.60M
                                                                                
                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 15.7M/17.5M [00:01<00:00, 12.8

sub-CRMBM1_UNIT1.nii.gz:  63%|████████▏    | 16.8M/26.6M [00:01<00:00, 12.8MB/s]
sub-CRMBM1_rec-uncombined5_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_inv-2_part-mag_MP2RAGE.nii.gz: 100%|▉| 17.5M/17.5M [00:01<00:00, 14.3


                                                                                

sub-CRMBM1_UNIT1.nii.gz:  70%|█████████    | 18.6M/26.6M [00:01<00:00, 14.2MB/s]
sub-CRMBM1_rec-uncombined8_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/804k [00:00<?, ?B/s]

sub-CRMBM1_UNIT1.nii.gz:  78%|██████████   | 20.7M/26.6M [00:01<00:00, 16.2MB/s]
sub-CRMBM1_rec-uncombined6_T2starw.nii.gz:   0%|     | 0.00/845k [00:00<?, ?B/s]
sub-CRMBM1_rec-uncombined7_T2starw.nii.gz:  68%|▋| 544k/804k [00:00<00:00, 5.55M



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



                                                                                
sub-CRMBM1_UNIT1.nii.gz:  90%|███████████▊ | 24.1M/26.6M [00:01<00:00, 20.5MB/s]
                                                                                



sub-CRMBM1_rec-uncombined6_T2starw.nii.gz:  31%|▎| 260k/845k [00:00<00:00, 2.65M
sub-CRMBM1_rec-uncombined7_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-CRMBM1_acq-anat_TB1TFL.json:   0%|              | 0.00/2.66k [00:00<?, ?B/s]
                                                                                


sub-CRMBM1_UNIT1.nii.gz:  98%|████████████▋| 26.1M/26.6M [00:02<00:00, 16.3MB/s]
                                                                                
sub-CRMBM1_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/854k [00:00<?, ?B/s]

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


                                                                                
sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/797k [00:00<?, ?B/s]
sub-CRMBM1_acq-anat_TB1TFL.nii.gz:  58%|██▉  | 492k/854k [00:00<00:00, 5.03MB/s]



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



                                                                                
sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  11%| | 493k/4.21M [00:00<00:00, 3.93M
                                                                                
sub-CRMBM1_rec-uncombined8_T2starw.nii.gz:  21%|▏| 170k/797k [00:00<00:00, 1.73M
sub-CRMBM1_acq-coilQaSagLarge_SNR.nii.gz:  42%|▍| 1.78M/4.21M [00:00<00:00, 9.00


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

                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  25%|▏| 679k/2.69M [00:00<00:00, 6


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


                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:   3%| | 305k/11.7M [00:00<00:04, 2.99MB


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


                                                                                
sub-CRMBM1_acq-coilQaSagSmall_GFactor.nii.gz:  48%|▍| 1.29M/2.69M [00:00<00:00, 
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.33M/11.7M [00:00<00:01, 7.49M


sub-CRMBM1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/93.4k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.7k [00:00<?, ?B/s]


                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  17%|▏| 2.05M/11.7M [00:00<00:01, 6.43M
                                                                                
sub-CRMBM1_acq-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  42%|▍| 4.99M/11.7M [00:00<00:00, 14.2M
sub-CRMBM1_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/93.3k [00:00<?, ?B/s]
                                                                                

sub-CRMBM1_acq-refv-0.66_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-coilQaTra_GFactor.nii.gz:  58%|▌| 6.82M/11.7M [00:00<00:00, 15.7M


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


sub-CRMBM1_acq-coilQaTra_GFactor.nii.gz:  75%|▋| 8.75M/11.7M [00:00<00:00, 16.4M
sub-CRMBM1_acq-refv-1.5_TB1DREAM.json:   0%|        | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-famp_TB1TFL.nii.gz:   0%|             | 0.00/949k [00:00<?, ?B/s]
                                                                                
sub-CRMBM1_acq-refv_TB1DREAM.json:   0%|            | 0.00/2.13k [00:00<?, ?B/s]

                                                                                
sub-CRMBM1_acq-famp_TB1TFL.nii.gz:  50%|██▌  | 476k/949k [00:00<00:00, 4.37MB/s]

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

                                                                                
                                                                                
sub-CRMBM1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/92.6k [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-CRMBM2_inv-2_MP2RAGE.json:   0%|                | 0.00/2.16k [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:   7%|▊            | 66.5k/990k [00:00<00:01, 665kB/s]



                                                                                
                                                                                
sub-CRMBM2_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.49k [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-1_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/13.7M [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:   3%|▍             | 776k/26.8M [00:00<00:03, 7.89MB/s]


sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:   0%|     | 0.00/753k [00:00<?, ?B/s]
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 645k/13.7M [00:00<00:02, 6.59M



sub-CRMBM2_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/744k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:  11%|█▍           | 2.85M/26.8M [00:00<00:01, 16.1MB/s]


sub-CRMBM2_rec-uncombined2_T2starw.nii.gz:  68%|▋| 509k/753k [00:00<00:00, 5.20M
                                                                                

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 1.46M/13.7M [00:00<00:01, 7.62


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



sub-CRMBM2_rec-uncombined1_T2starw.nii.gz:  30%|▎| 220k/744k [00:00<00:00, 2.23M
sub-CRMBM2_UNIT1.nii.gz:  16%|██▏          | 4.39M/26.8M [00:00<00:01, 14.5MB/s]
                                                                                


sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 339k/15.7M [00:00<00:04, 3.46M

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.19M/13.7M [00:00<00:01, 7.24
sub-CRMBM2_rec-uncombined1_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]



                                                                                
sub-CRMBM2_UNIT1.nii.gz:  22%|██▊          | 5.79M/26.8M [00:00<00:01, 12.6MB/s]


sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.08M/15.7M [00:00<00:02, 6.03

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 3.55M/13.7M [00:00<00:01, 9.88
sub-CRMBM2_UNIT1.nii.gz:  29%|███▊         | 7.75M/26.8M [00:00<00:01, 15.0MB/s]



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



                                                                                
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.16M/15.7M [00:00<00:01, 7.48

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



sub-CRMBM2_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/723k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:  35%|████▍        | 9.25M/26.8M [00:00<00:01, 14.4MB/s]
sub-CRMBM2_rec-uncombined3_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]




                                                                                


sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.15M/15.7M [00:00<00:01, 8.56

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▌| 6.87M/13.7M [00:00<00:00, 13.6



sub-CRMBM2_rec-uncombined4_T2starw.nii.gz:  49%|▍| 356k/723k [00:00<00:00, 3.10M
                                                                                
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 3.98M/15.7M [00:00<00:01, 8.30
sub-CRMBM2_UNIT1.nii.gz:  40%|█████▏       | 10.7M/26.8M [00:00<00:01, 12.8MB/s]

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  60%|▌| 8.19M/13.7M [00:00<00:00, 12.3
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 5.93M/15.7M [00:00<00:00, 12.2
sub-CRMBM2_UNIT1.nii.gz:  47%|██████▏      | 12.7M/26.8M [00:00<00:00, 14.9MB/s]

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 10.1M/13.7M [00:00<00:00, 14.6



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



                                                                                
sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:   0%|     | 0.00/815k [00:00<?, ?B/s]
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 7.25M/15.7M [00:00<00:00, 12.7
sub-CRMBM2_UNIT1.nii.gz:  53%|██████▊      | 14.2M/26.8M [00:01<00:00, 14.6MB/s]
sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 11.5M/13.7M [00:00<00:00, 14.0



sub-CRMBM2_rec-uncombined3_T2starw.nii.gz:  60%|▌| 492k/815k [00:00<00:00, 5.03M
sub-CRMBM2_rec-uncombined7_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]




                                                                                


sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 8.68M/15.7M [00:00<00:00, 12.6



                                                                                
sub-CRMBM2_UNIT1.nii.gz:  58%|███████▌     | 15.6M/26.8M [00:01<00:00, 13.0MB/s]

sub-CRMBM2_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 12.9M/13.7M [00:01<00:00, 12.7
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  63%|▋| 9.90M/15.7M [00:00<00:00, 12.6

                                                                                
sub-CRMBM2_UNIT1.nii.gz:  63%|████████▏    | 16.9M/26.8M [00:01<00:00, 13.2MB/s]
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  75%|▊| 11.8M/15.7M [00:01<00:00, 14.9
sub-CRMBM2_UNIT1.nii.gz:  74%|█████████▌   | 19.8M/26.8M [00:01<00:00, 17.7MB/s]
sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:   0%|     | 0.00/700k [00:00<?, ?B/s]



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



                                                                                
sub-CRMBM2_inv-2_part-mag_MP2RAGE.nii.gz:  93%|▉| 14.5M/15.7M [00:01<00:00, 17.5



sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/771k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz:  81%|██████████▌  | 21.7M/26.8M [00:01<00:00, 18.3MB/s]
                                                                                

sub-CRMBM2_rec-uncombined7_T2starw.nii.gz:  22%|▏| 152k/700k [00:00<00:00, 1.26M
                                                                                



sub-CRMBM2_rec-uncombined5_T2starw.nii.gz:  46%|▍| 356k/771k [00:00<00:00, 3.61M
sub-CRMBM2_UNIT1.nii.gz:  88%|███████████▍ | 23.5M/26.8M [00:01<00:00, 16.7MB/s]



                                                                                
sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:   0%|     | 0.00/753k [00:00<?, ?B/s]
sub-CRMBM2_UNIT1.nii.gz: 100%|████████████▉| 26.7M/26.8M [00:01<00:00, 21.1MB/s]
                                                                                
sub-CRMBM2_rec-uncombined8_T2starw.json:   0%|      | 0.00/2.49k [00:00<?, ?B/s]
                                                                                


sub-CRMBM2_rec-uncombined6_T2starw.nii.gz:  43%|▍| 323k/753k [00:00<00:00, 2.72M
sub-CRMBM2_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/802k [00:00<?, ?B/s]

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


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


                                                                                
sub-CRMBM2_acq-anat_TB1TFL.nii.gz:  18%|▉    | 147k/802k [00:00<00:00, 1.33MB/s]


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


                                                                                
sub-CRMBM2_rec-uncombined8_T2starw.nii.gz:  28%|▎| 203k/731k [00:00<00:00, 2.05M
                                                                                
                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaSagSmall_GFactor.json:   0%|   | 0.00/2.24k [00:00<?, ?B/s]

                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.json:   0%|        | 0.00/2.13k [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:   3%| | 306k/11.7M [00:00<00:04, 2.79MB

                                                                                

sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:   0%|     | 0.00/4.02M [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:   0%| | 0.00/2.69M [00:00<?, ?B/s]
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  21%|▏| 2.46M/11.7M [00:00<00:00, 13.8M

sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  14%|▏| 595k/4.02M [00:00<00:00, 6.08M
sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  13%|▏| 356k/2.69M [00:00<00:00, 3
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  41%|▍| 4.77M/11.7M [00:00<00:00, 18.4M



sub-CRMBM2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/91.7k [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-coilQaSagLarge_SNR.nii.gz:  42%|▍| 1.68M/4.02M [00:00<00:00, 9.24
                                                                                


sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  51%|▌| 1.38M/2.69M [00:00<00:00, 




                                                                                
sub-CRMBM2_acq-coilQaSagSmall_GFactor.nii.gz:  79%|▊| 2.13M/2.69M [00:00<00:00, 
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  56%|▌| 6.59M/11.7M [00:00<00:00, 15.0M

sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  64%|▋| 2.56M/4.02M [00:00<00:00, 7.86


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


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


                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  69%|▋| 8.12M/11.7M [00:00<00:00, 12.7M

sub-CRMBM2_acq-coilQaSagLarge_SNR.nii.gz:  83%|▊| 3.34M/4.02M [00:00<00:00, 6.68
                                                                                

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

                                                                                
sub-CRMBM2_acq-coilQaTra_GFactor.nii.gz:  81%|▊| 9.54M/11.7M [00:00<00:00, 13.3M
                                                                                

sub-CRMBM2_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/92.1k [00:00<?, ?B/s]
sub-CRMBM2_acq-refv-0.66_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-famp_TB1TFL.json:   0%|              | 0.00/2.74k [00:00<?, ?B/s]

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

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

sub-CRMBM2_acq-refv_TB1DREAM.json:   0%|            | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-CRMBM2_acq-famp_TB1TFL.nii.gz:  62%|███  | 578k/929k [00:00<00:00, 5.91MB/s]

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

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


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

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


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


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


                                                                                
sub-CRMBM3_T2starw.nii.gz:  32%|███▉        | 341k/1.03M [00:00<00:00, 3.49MB/s]

sub-CRMBM3_UNIT1.nii.gz:   1%|▏             | 293k/26.7M [00:00<00:10, 2.75MB/s]


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

sub-CRMBM3_rec-uncombined2_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]
                                                                                
sub-CRMBM3_UNIT1.nii.gz:   3%|▍             | 838k/26.7M [00:00<00:06, 4.35MB/s]


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 340k/15.1M [00:00<00:04, 3.48M
sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:   0%|     | 0.00/788k [00:00<?, ?B/s]
sub-CRMBM3_UNIT1.nii.gz:   9%|█▏           | 2.33M/26.7M [00:00<00:02, 9.46MB/s]


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 1.79M/15.1M [00:00<00:01, 10.4



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



                                                                                
sub-CRMBM3_rec-uncombined1_T2starw.nii.gz:  39%|▍| 305k/788k [00:00<00:00, 3.10M
sub-CRMBM3_UNIT1.nii.gz:  12%|█▌           | 3.26M/26.7M [00:00<00:02, 9.46MB/s]
                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|     | 0.00/17.3M [00:00<?, ?B/s]


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 2.79M/15.1M [00:00<00:01, 9.09
sub-CRMBM3_UNIT1.nii.gz:  19%|██▍          | 4.96M/26.7M [00:00<00:01, 12.4MB/s]



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


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 5.07M/15.1M [00:00<00:00, 14.4
sub-CRMBM3_UNIT1.nii.gz:  26%|███▎         | 6.80M/26.7M [00:00<00:01, 14.7MB/s]



sub-CRMBM3_rec-uncombined2_T2starw.nii.gz:  47%|▍| 373k/798k [00:00<00:00, 3.79M
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.59M/17.3M [00:00<00:01, 8.65


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 6.69M/15.1M [00:00<00:00, 15.3



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

sub-CRMBM3_UNIT1.nii.gz:  31%|████         | 8.22M/26.7M [00:00<00:01, 14.1MB/s]
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.76M/17.3M [00:00<00:01, 10.2


sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 8.19M/15.1M [00:00<00:00, 13.7
sub-CRMBM3_rec-uncombined3_T2starw.nii.gz:  67%|▋| 578k/861k [00:00<00:00, 5.91M

sub-CRMBM3_UNIT1.nii.gz:  37%|████▊        | 9.80M/26.7M [00:00<00:01, 14.8MB/s]



                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 4.18M/17.3M [00:00<00:01, 11.0



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



                                                                                

sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 9.55M/15.1M [00:00<00:00, 12.0
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.22M/17.3M [00:00<00:01, 10.8

sub-CRMBM3_UNIT1.nii.gz:  42%|█████▍       | 11.2M/26.7M [00:00<00:01, 12.6MB/s]
sub-CRMBM3_rec-uncombined4_T2starw.json:   0%|      | 0.00/2.43k [00:00<?, ?B/s]



                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 10.8M/15.1M [00:00<00:00, 12.0
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 6.63M/17.3M [00:00<00:00, 12.0

sub-CRMBM3_UNIT1.nii.gz:  47%|██████▏      | 12.6M/26.7M [00:01<00:01, 12.9MB/s]
sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:   0%|     | 0.00/758k [00:00<?, ?B/s]
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  83%|▊| 12.6M/15.1M [00:01<00:00, 13.9
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 8.46M/17.3M [00:00<00:00, 14.3

sub-CRMBM3_UNIT1.nii.gz:  54%|███████      | 14.4M/26.7M [00:01<00:00, 14.6MB/s]
sub-CRMBM3_rec-uncombined4_T2starw.nii.gz:  63%|▋| 475k/758k [00:00<00:00, 4.84M



                                                                                
sub-CRMBM3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 14.1M/15.1M [00:01<00:00, 13.5
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 9.83M/17.3M [00:00<00:00, 13.8
sub-CRMBM3_UNIT1.nii.gz:  59%|███████▋     | 15.8M/26.7M [00:01<00:00, 14.2MB/s]


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


                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  65%|▋| 11.2M/17.3M [00:00<00:00, 13.1

sub-CRMBM3_UNIT1.nii.gz:  65%|████████▍    | 17.3M/26.7M [00:01<00:00, 13.6MB/s]
sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:   0%|     | 0.00/817k [00:00<?, ?B/s]



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



                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 13.1M/17.3M [00:01<00:00, 15.0

sub-CRMBM3_UNIT1.nii.gz:  72%|█████████▎   | 19.1M/26.7M [00:01<00:00, 15.0MB/s]
sub-CRMBM3_rec-uncombined5_T2starw.nii.gz:  47%|▍| 385k/817k [00:00<00:00, 3.93M



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


                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  85%|▊| 14.8M/17.3M [00:01<00:00, 15.0

sub-CRMBM3_UNIT1.nii.gz:  77%|██████████   | 20.6M/26.7M [00:01<00:00, 15.0MB/s]


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


                                                                                
sub-CRMBM3_rec-uncombined6_T2starw.nii.gz:  14%|▏| 119k/835k [00:00<00:00, 1.21M
                                                                                
sub-CRMBM3_inv-2_part-mag_MP2RAGE.nii.gz:  94%|▉| 16.2M/17.3M [00:01<00:00, 13.7

sub-CRMBM3_UNIT1.nii.gz:  83%|██████████▋  | 22.0M/26.7M [00:01<00:00, 13.7MB/s]


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


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


sub-CRMBM3_UNIT1.nii.gz:  88%|███████████▍ | 23.3M/26.7M [00:01<00:00, 12.4MB/s]
                                                                                
sub-CRMBM3_rec-uncombined8_T2starw.nii.gz:   0%|     | 0.00/773k [00:00<?, ?B/s]

sub-CRMBM3_UNIT1.nii.gz:  97%|████████████▋| 26.0M/26.7M [00:02<00:00, 16.3MB/s]
                                                                                

sub-CRMBM3_acq-anat_TB1TFL.nii.gz:   0%|             | 0.00/871k [00:00<?, ?B/s]
sub-CRMBM3_rec-uncombined8_T2starw.nii.gz: 100%|█| 773k/773k [00:00<00:00, 7.89M
                                                                                

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


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



                                                                                
sub-CRMBM3_acq-anat_TB1TFL.nii.gz:  12%|▋     | 101k/871k [00:00<00:00, 895kB/s]

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

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-famp-1.5_TB1DREAM.json:   0%|        | 0.00/2.14k [00:00<?, ?B/s]


                                                                                
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  10%| | 408k/4.11M [00:00<00:01, 3.78M
sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  15%|▏| 424k/2.69M [00:00<00:00, 4


sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   0%|      | 0.00/11.7M [00:00<?, ?B/s]
sub-CRMBM3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|     | 0.00/92.4k [00:00<?, ?B/s]
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  42%|▍| 1.74M/4.11M [00:00<00:00, 9.57
                                                                                

sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  61%|▌| 1.64M/2.69M [00:00<00:00, 


sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:   4%| | 459k/11.7M [00:00<00:03, 3.66MB
sub-CRMBM3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/93.0k [00:00<?, ?B/s]
sub-CRMBM3_acq-coilQaSagSmall_GFactor.nii.gz:  94%|▉| 2.54M/2.69M [00:00<00:00, 
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  65%|▋| 2.69M/4.11M [00:00<00:00, 8.72



                                                                                

                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.26M/11.7M [00:00<00:01, 5.87M

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

                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 1.86M/11.7M [00:00<00:01, 6.03M
sub-CRMBM3_acq-coilQaSagLarge_SNR.nii.gz:  86%|▊| 3.55M/4.11M [00:00<00:00, 7.43
sub-CRMBM3_acq-famp_TB1DREAM.json:   0%|            | 0.00/2.12k [00:00<?, ?B/s]

                                                                                

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


                                                                                
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  23%|▏| 2.72M/11.7M [00:00<00:01, 6.79M
sub-CRMBM3_acq-famp_TB1DREAM.nii.gz:   0%|          | 0.00/92.1k [00:00<?, ?B/s]
sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  48%|▍| 5.65M/11.7M [00:00<00:00, 14.8M
                                                                                
sub-CRMBM3_acq-refv_TB1DREAM.nii.gz:   0%|          | 0.00/86.1k [00:00<?, ?B/s]


sub-CRMBM3_acq-coilQaTra_GFactor.nii.gz:  79%|▊| 9.24M/11.7M [00:00<00:00, 21.8M

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



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

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

sub-CRMBM3_acq-famp_TB1TFL.nii.gz:  14%|▋    | 130k/954k [00:00<00:00, 1.21MB/s]



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

sub-CRMBM3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|      | 0.00/91.2k [00:00<?, ?B/s]
sub-MGH1_UNIT1.json:   0%|                          | 0.00/1.98k [00:00<?, ?B/s]

                                                                                
                                                                                

sub-MGH1_T2starw.json:   0%|                        | 0.00/2.42k [00:00<?, ?B/s]
                                                                                
sub-MGH1_T2starw.nii.gz:   0%|                      | 0.00/1.27M [00:00<?, ?B/s]
sub-MGH1_inv-1_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]

                                                                                
sub-MGH1_T2starw.nii.gz:  40%|█████▋        | 527k/1.27M [00:00<00:00, 5.38MB/s]
                                                                                
sub-MGH1_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/795k [00:00<?, ?B/s]

sub-MGH1_UNIT1.nii.gz:   0%|                        | 0.00/17.0M [00:00<?, ?B/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-uncombined01_T2starw.nii.gz:  55%|▌| 437k/795k [00:00<00:00, 4.47MB

sub-MGH1_UNIT1.nii.gz:   3%|▍               | 442k/17.0M [00:00<00:03, 4.52MB/s]
                                                                                



sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 629k/7.98M [00:00<00:01, 4.91MB/
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/9.54M [00:00<?, ?B/s]



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



                                                                                
sub-MGH1_UNIT1.nii.gz:   7%|█              | 1.19M/17.0M [00:00<00:02, 5.73MB/s]


sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  19%|▏| 1.53M/7.98M [00:00<00:00, 7.32MB
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 339k/9.54M [00:00<00:02, 3.40MB/
sub-MGH1_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

sub-MGH1_UNIT1.nii.gz:  14%|██             | 2.31M/17.0M [00:00<00:01, 8.21MB/s]



                                                                                


sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  32%|▎| 2.55M/7.98M [00:00<00:00, 8.75MB
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 1.11M/9.54M [00:00<00:01, 6.17MB



sub-MGH1_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/688k [00:00<?, ?B/s]
sub-MGH1_UNIT1.nii.gz:  18%|██▋            | 3.10M/17.0M [00:00<00:01, 8.17MB/s]




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




                                                                                
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 2.01M/9.54M [00:00<00:01, 6.96MB


sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 4.14M/7.98M [00:00<00:00, 10.7MB



sub-MGH1_rec-uncombined03_T2starw.nii.gz:  42%|▍| 289k/688k [00:00<00:00, 2.94MB
sub-MGH1_UNIT1.nii.gz:  24%|███▌           | 4.09M/17.0M [00:00<00:01, 8.91MB/s]



                                                                                
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 5.22M/7.98M [00:00<00:00, 10.9MB
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  28%|▎| 2.67M/9.54M [00:00<00:01, 6.80MB
sub-MGH1_UNIT1.nii.gz:  31%|████▋          | 5.32M/17.0M [00:00<00:01, 10.2MB/s]



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



                                                                                
sub-MGH1_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 6.55M/7.98M [00:00<00:00, 11.8MB
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 3.63M/9.54M [00:00<00:00, 7.90MB
sub-MGH1_UNIT1.nii.gz:  39%|█████▊         | 6.65M/17.0M [00:00<00:00, 11.4MB/s]


                                                                                
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 5.06M/9.54M [00:00<00:00, 10.2MB


sub-MGH1_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/666k [00:00<?, ?B/s]
sub-MGH1_UNIT1.nii.gz:  48%|███████▏       | 8.23M/17.0M [00:00<00:00, 13.0MB/s]
sub-MGH1_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/779k [00:00<?, ?B/s]


                                                                                
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 6.99M/9.54M [00:00<00:00, 12.7MB
sub-MGH1_UNIT1.nii.gz:  57%|████████▌      | 9.73M/17.0M [00:00<00:00, 13.8MB/s]


sub-MGH1_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/789k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined04_T2starw.nii.gz:  48%|▍| 373k/779k [00:00<00:00, 3.77MB
sub-MGH1_inv-2_part-mag_MP2RAGE.nii.gz:  95%|▉| 9.06M/9.54M [00:00<00:00, 15.3MB



                                                                                
sub-MGH1_UNIT1.nii.gz:  68%|██████████▏    | 11.6M/17.0M [00:01<00:00, 14.7MB/s]


sub-MGH1_rec-uncombined05_T2starw.nii.gz:  50%|▍| 391k/789k [00:00<00:00, 3.99MB
                                                                                
sub-MGH1_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/771k [00:00<?, ?B/s]


                                                                                
sub-MGH1_UNIT1.nii.gz:  77%|███████████▍   | 13.0M/17.0M [00:01<00:00, 13.9MB/s]
                                                                                
sub-MGH1_rec-uncombined05_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_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_UNIT1.nii.gz:  84%|████████████▋  | 14.4M/17.0M [00:01<00:00, 11.5MB/s]
                                                                                
sub-MGH1_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

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

sub-MGH1_rec-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-uncombined07_T2starw.nii.gz:  59%|▌| 475k/804k [00:00<00:00, 4.85MB
                                                                                
sub-MGH1_rec-uncombined08_T2starw.nii.gz:  75%|▋| 714k/957k [00:00<00:00, 6.03MB
sub-MGH1_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/871k [00:00<?, ?B/s]

                                                                                
sub-MGH1_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/833k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined09_T2starw.nii.gz:  47%|▍| 407k/871k [00:00<00:00, 3.95MB


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



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



                                                                                
sub-MGH1_rec-uncombined10_T2starw.nii.gz:  22%|▏| 186k/833k [00:00<00:00, 1.82MB



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



                                                                                
sub-MGH1_rec-uncombined09_T2starw.nii.gz:  92%|▉| 798k/871k [00:00<00:00, 3.97MB
                                                                                



sub-MGH1_rec-uncombined11_T2starw.nii.gz:  32%|▎| 289k/895k [00:00<00:00, 2.81MB
sub-MGH1_rec-uncombined10_T2starw.nii.gz:  75%|▊| 629k/833k [00:00<00:00, 3.38MB
sub-MGH1_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
                                                                                


sub-MGH1_rec-uncombined11_T2starw.nii.gz:  70%|▋| 629k/895k [00:00<00:00, 3.00MB


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

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-uncombined12_T2starw.nii.gz:  53%|▌| 510k/955k [00:00<00:00, 5.21MB

sub-MGH1_rec-uncombined13_T2starw.nii.gz:  97%|▉| 765k/789k [00:00<00:00, 7.63MB

                                                                                

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

sub-MGH1_rec-uncombined16_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:  64%|▋| 611k/960k [00:00<00:00, 6.24MB
                                                                                
sub-MGH1_rec-uncombined15_T2starw.nii.gz:  86%|▊| 696k/809k [00:00<00:00, 7.11MB
                                                                                
sub-MGH1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

sub-MGH1_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/783k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/985k [00:00<?, ?B/s]
sub-MGH1_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/890k [00:00<?, ?B/s]



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



                                                                                
sub-MGH1_rec-uncombined14_T2starw.nii.gz:  37%|▎| 289k/783k [00:00<00:00, 2.82MB



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



                                                                                

sub-MGH1_rec-uncombined17_T2starw.nii.gz:  19%|▏| 187k/985k [00:00<00:00, 1.77MB
sub-MGH1_rec-uncombined18_T2starw.nii.gz:  34%|▎| 300k/890k [00:00<00:00, 3.06MB
                                                                                
sub-MGH1_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH1_rec-uncombined17_T2starw.nii.gz:  85%|▊| 833k/985k [00:00<00:00, 4.05MB


sub-MGH1_rec-uncombined18_T2starw.nii.gz:  83%|▊| 743k/890k [00:00<00:00, 3.91MB


                                                                                

                                                                                
sub-MGH1_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/827k [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-uncombined19_T2starw.nii.gz:  45%|▍| 374k/827k [00:00<00:00, 3.54MB
                                                                                

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


                                                                                

sub-MGH1_acq-anat_TB1TFL.nii.gz:  13%|▉      | 118k/927k [00:00<00:00, 1.20MB/s]
                                                                                
                                                                                
sub-MGH1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.08k [00:00<?, ?B/s]
                                                                                
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-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.18k [00:00<?, ?B/s]


                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:   9%| | 391k/4.44M [00:00<00:01, 3.16MB/


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



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


                                                                                
sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.70M [00:00<00:01, 2.6
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  25%|▎| 1.13M/4.44M [00:00<00:00, 5.63MB



sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   3%| | 549k/16.1M [00:00<00:02, 5.58MB/s
sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  35%|▎| 1.31M/3.70M [00:00<00:00, 6.


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


                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.40M/16.1M [00:00<00:02, 7.15MB/
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  46%|▍| 2.02M/4.44M [00:00<00:00, 6.80MB
sub-MGH1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.6k [00:00<?, ?B/s]

sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  56%|▌| 2.07M/3.70M [00:00<00:00, 7.
                                                                                
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  64%|▋| 2.85M/4.44M [00:00<00:00, 7.24MB



sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  14%|▏| 2.26M/16.1M [00:00<00:01, 7.62MB/
sub-MGH1_acq-coilQaSagSmall_GFactor.nii.gz:  86%|▊| 3.19M/3.70M [00:00<00:00, 9.
                                                                                

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

                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  19%|▏| 3.01M/16.1M [00:00<00:01, 7.04MB/
sub-MGH1_acq-coilQaSagLarge_SNR.nii.gz:  94%|▉| 4.16M/4.44M [00:00<00:00, 8.62MB
                                                                                
sub-MGH1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.52M/16.1M [00:00<00:01, 9.91MB/
sub-MGH1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                




sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  61%|▌| 9.75M/16.1M [00:00<00:00, 22.2MB/
sub-MGH1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-MGH1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/950k [00:00<?, ?B/s]
sub-MGH1_acq-coilQaTra_GFactor.nii.gz:  77%|▊| 12.3M/16.1M [00:00<00:00, 23.6MB/
sub-MGH1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.4k [00:00<?, ?B/s]
sub-MGH1_acq-famp_TB1TFL.nii.gz:  63%|████▍  | 595k/950k [00:00<00:00, 6.08MB/s]
sub-MGH1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.15k [00:00<?, ?B/s]


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

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

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



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

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


sub-MGH1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/96.5k [00:00<?, ?B/s]
                                                                                
                                                                                
                                                                                
sub-MGH2_UNIT1.json:   0%|                          | 0.00/1.98k [00:00<?, ?B/s]
                                                                                
sub-MGH2_inv-1_MP2RAGE.json:   0%|                  | 0.00/1.99k [00:00<?, ?B/s]

sub-MGH2_T2starw.nii.gz:   0%|                      | 0.00/1.16M [00:00<?, ?B/s]
                                                                                
sub-MGH2_UNIT1.nii.gz:   0%|                        | 0.00/17.1M [00:00<?, ?B/s]
sub-MGH2_T2starw.nii.gz:  26%|███▌          | 305k/1.16M [00:00<00:00, 2.72MB/s]


sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/7.82M [00:00<?, ?B/s]
sub-MGH2_UNIT1.nii.gz:   2%|▍               | 425k/17.1M [00:00<00:04, 4.35MB/s]

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


sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 237k/7.82M [00:00<00:03, 2.41MB/
sub-MGH2_UNIT1.nii.gz:   8%|█▏             | 1.40M/17.1M [00:00<00:02, 7.81MB/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/9.49M [00:00<?, ?B/s]

sub-MGH2_rec-uncombined01_T2starw.nii.gz:  72%|▋| 545k/761k [00:00<00:00, 5.58MB




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




                                                                                


sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  19%|▏| 1.48M/7.82M [00:00<00:00, 8.63MB
sub-MGH2_UNIT1.nii.gz:  14%|██             | 2.40M/17.1M [00:00<00:01, 8.83MB/s]

                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 255k/9.49M [00:00<00:03, 2.45MB/
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 2.31M/7.82M [00:00<00:00, 7.79MB
sub-MGH2_UNIT1.nii.gz:  21%|███▏           | 3.58M/17.1M [00:00<00:01, 10.1MB/s]

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

                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 1.13M/9.49M [00:00<00:01, 5.58MB
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 3.44M/7.82M [00:00<00:00, 9.25MB
sub-MGH2_UNIT1.nii.gz:  28%|████▏          | 4.72M/17.1M [00:00<00:01, 10.8MB/s]

sub-MGH2_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/628k [00:00<?, ?B/s]
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  24%|▏| 2.30M/9.49M [00:00<00:00, 8.39MB




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




                                                                                
sub-MGH2_UNIT1.nii.gz:  37%|█████▌         | 6.37M/17.1M [00:00<00:00, 12.3MB/s]


sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 5.17M/7.82M [00:00<00:00, 11.3MB

sub-MGH2_rec-uncombined03_T2starw.nii.gz:  40%|▍| 254k/628k [00:00<00:00, 2.58MB
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 3.13M/9.49M [00:00<00:00, 8.21MB
                                                                                
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 6.25M/7.82M [00:00<00:00, 10.4MB
sub-MGH2_UNIT1.nii.gz:  44%|██████▌        | 7.55M/17.1M [00:00<00:00, 11.1MB/s]

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

                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  44%|▍| 4.19M/9.49M [00:00<00:00, 8.62MB
sub-MGH2_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 7.62M/7.82M [00:00<00:00, 11.5MB
sub-MGH2_UNIT1.nii.gz:  51%|███████▋       | 8.80M/17.1M [00:00<00:00, 11.7MB/s]


                                                                                
sub-MGH2_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 5.60M/9.49M [00:00<00:00, 10.5MB
sub-MGH2_UNIT1.nii.gz:  62%|█████████▎     | 10.6M/17.1M [00:00<00:00, 13.9MB/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:  81%|▊| 7.69M/9.49M [00:00<00:00, 13.9MB
sub-MGH2_UNIT1.nii.gz:  74%|███████████    | 12.7M/17.1M [00:01<00:00, 16.0MB/s]



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


sub-MGH2_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/591k [00:00<?, ?B/s]
sub-MGH2_UNIT1.nii.gz:  91%|█████████████▌ | 15.5M/17.1M [00:01<00:00, 20.1MB/s]
                                                                                
sub-MGH2_rec-uncombined04_T2starw.nii.gz:  43%|▍| 305k/701k [00:00<00:00, 2.81MB

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

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


sub-MGH2_rec-uncombined02_T2starw.nii.gz:  52%|▌| 305k/591k [00:00<00:00, 2.47MB


                                                                                
sub-MGH2_rec-uncombined06_T2starw.nii.gz:  49%|▍| 339k/697k [00:00<00:00, 3.44MB
sub-MGH2_rec-uncombined05_T2starw.nii.gz:  40%|▍| 288k/727k [00:00<00:00, 2.63MB


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


                                                                                
                                                                                

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

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

                                                                                
sub-MGH2_rec-uncombined05_T2starw.nii.gz:  77%|▊| 560k/727k [00:00<00:00, 2.16MB
                                                                                
sub-MGH2_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                

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


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



                                                                                
sub-MGH2_rec-uncombined08_T2starw.nii.gz:  17%|▏| 148k/880k [00:00<00:00, 1.51MB
sub-MGH2_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]



                                                                                

sub-MGH2_rec-uncombined07_T2starw.nii.gz:  48%|▍| 340k/714k [00:00<00:00, 3.47MB


sub-MGH2_rec-uncombined11_T2starw.nii.gz:  16%|▏| 135k/817k [00:00<00:00, 1.37MB
                                                                                
sub-MGH2_rec-uncombined08_T2starw.nii.gz:  86%|▊| 760k/880k [00:00<00:00, 3.86MB
                                                                                
sub-MGH2_rec-uncombined11_T2starw.nii.gz:  85%|▊| 696k/817k [00:00<00:00, 3.75MB


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

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

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

                                                                                
sub-MGH2_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/807k [00:00<?, ?B/s]
sub-MGH2_rec-uncombined10_T2starw.nii.gz:  46%|▍| 357k/777k [00:00<00:00, 3.38MB


sub-MGH2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/740k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined09_T2starw.nii.gz:  44%|▍| 357k/807k [00:00<00:00, 3.64MB
sub-MGH2_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                



sub-MGH2_rec-uncombined13_T2starw.nii.gz:  37%|▎| 272k/740k [00:00<00:00, 2.78MB
sub-MGH2_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/861k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MGH2_rec-uncombined12_T2starw.nii.gz:  35%|▎| 300k/861k [00:00<00:00, 3.07MB
sub-MGH2_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

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


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

                                                                                
sub-MGH2_rec-uncombined14_T2starw.nii.gz:  51%|▌| 374k/733k [00:00<00:00, 3.81MB

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

                                                                                
sub-MGH2_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/734k [00:00<?, ?B/s]
                                                                                
sub-MGH2_rec-uncombined16_T2starw.nii.gz:  33%|▎| 306k/927k [00:00<00:00, 2.65MB


                                                                                
sub-MGH2_rec-uncombined15_T2starw.nii.gz:  18%|▏| 135k/734k [00:00<00:00, 1.38MB
sub-MGH2_rec-uncombined19_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:   0%|      | 0.00/985k [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:  73%|▋| 628k/856k [00:00<00:00, 6.28MB
                                                                                
sub-MGH2_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]

sub-MGH2_rec-uncombined17_T2starw.nii.gz:  41%|▍| 408k/985k [00:00<00:00, 3.55MB

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


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


                                                                                
sub-MGH2_rec-uncombined19_T2starw.nii.gz:  68%|▋| 561k/828k [00:00<00:00, 5.73MB
                                                                                
sub-MGH2_rec-uncombined20_T2starw.nii.gz:  47%|▍| 441k/941k [00:00<00:00, 4.50MB

                                                                                
sub-MGH2_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.41k [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:   0%|               | 0.00/869k [00:00<?, ?B/s]
sub-MGH2_acq-anat_TB1TFL.nii.gz:  47%|███▎   | 407k/869k [00:00<00:00, 4.06MB/s]

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

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

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

sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 408k/3.65M [00:00<00:00, 4.1


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


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


                                                                                
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:   6%| | 256k/4.12M [00:00<00:01, 2.62MB/

sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  24%|▏| 900k/3.65M [00:00<00:00, 4.6


sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.9M [00:00<?, ?B/s]
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  39%|▍| 1.59M/4.12M [00:00<00:00, 9.35MB

sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  60%|▌| 2.21M/3.65M [00:00<00:00, 8.



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:   4%| | 630k/15.9M [00:00<00:02, 6.39MB/s
                                                                                
sub-MGH2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.9k [00:00<?, ?B/s]
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  60%|▌| 2.49M/4.12M [00:00<00:00, 9.28MB

sub-MGH2_acq-coilQaSagSmall_GFactor.nii.gz:  84%|▊| 3.07M/3.65M [00:00<00:00, 8.


sub-MGH2_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.25M/15.9M [00:00<00:02, 6.49MB/



                                                                                
                                                                                
sub-MGH2_acq-coilQaSagLarge_SNR.nii.gz:  82%|▊| 3.38M/4.12M [00:00<00:00, 8.67MB


sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.88M/15.9M [00:00<00:02, 6.17MB/
                                                                                

sub-MGH2_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.12k [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:  16%|▏| 2.47M/15.9M [00:00<00:02, 5.73MB/
sub-MGH2_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/927k [00:00<?, ?B/s]
sub-MGH2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.1k [00:00<?, ?B/s]


sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  45%|▍| 7.12M/15.9M [00:00<00:00, 20.0MB/



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



                                                                                
sub-MGH2_acq-famp_TB1TFL.nii.gz:  27%|█▉     | 254k/927k [00:00<00:00, 2.46MB/s]

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


sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  57%|▌| 9.15M/15.9M [00:00<00:00, 18.9MB/
                                                                                
                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  69%|▋| 11.0M/15.9M [00:00<00:00, 19.0MB/
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-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/96.1k [00:00<?, ?B/s]


sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  81%|▊| 12.9M/15.9M [00:00<00:00, 18.8MB/
                                                                                
sub-MGH2_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/93.5k [00:00<?, ?B/s]
                                                                                
sub-MGH2_acq-coilQaTra_GFactor.nii.gz:  97%|▉| 15.4M/15.9M [00:00<00:00, 19.8MB/
sub-MGH3_T2starw.json:   0%|                        | 0.00/2.43k [00:00<?, ?B/s]
                                                                                

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

                                                                                
sub-MGH3_T2starw.nii.gz:  46%|██████▍       | 628k/1.33M [00:00<00:00, 6.15MB/s]
                                                                                

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

                                                                                

sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/8.41M [00:00<?, ?B/s]
sub-MGH3_UNIT1.nii.gz:   3%|▍               | 535k/17.1M [00:00<00:03, 5.47MB/s]
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 612k/8.41M [00:00<00:01, 6.24MB/
sub-MGH3_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/795k [00:00<?, ?B/s]
sub-MGH3_UNIT1.nii.gz:  13%|██             | 2.30M/17.1M [00:00<00:01, 13.2MB/s]



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



                                                                                
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 1.51M/8.41M [00:00<00:00, 8.16MB
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/10.4M [00:00<?, ?B/s]


sub-MGH3_rec-uncombined01_T2starw.nii.gz:  71%|▋| 561k/795k [00:00<00:00, 5.70MB


                                                                                
sub-MGH3_UNIT1.nii.gz:  21%|███▏           | 3.58M/17.1M [00:00<00:01, 13.2MB/s]
sub-MGH3_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]


                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 237k/10.4M [00:00<00:04, 2.18MB/

sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 2.48M/8.41M [00:00<00:00, 8.03MB
sub-MGH3_UNIT1.nii.gz:  28%|████▎          | 4.85M/17.1M [00:00<00:01, 11.9MB/s]
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  51%|▌| 4.30M/8.41M [00:00<00:00, 12.0MB



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 1.29M/10.4M [00:00<00:01, 7.18MB
sub-MGH3_UNIT1.nii.gz:  40%|█████▉         | 6.79M/17.1M [00:00<00:00, 14.7MB/s]


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


                                                                                
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 5.64M/8.41M [00:00<00:00, 12.7MB



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  20%|▏| 2.06M/10.4M [00:00<00:01, 7.54MB


sub-MGH3_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/632k [00:00<?, ?B/s]
sub-MGH3_UNIT1.nii.gz:  48%|███████▏       | 8.22M/17.1M [00:00<00:00, 14.4MB/s]
sub-MGH3_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 7.45M/8.41M [00:00<00:00, 14.8MB



sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  31%|▎| 3.22M/10.4M [00:00<00:00, 9.31MB
sub-MGH3_rec-uncombined02_T2starw.nii.gz:  35%|▎| 220k/632k [00:00<00:00, 2.10MB
sub-MGH3_UNIT1.nii.gz:  59%|████████▊      | 10.0M/17.1M [00:00<00:00, 15.8MB/s]

                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  43%|▍| 4.49M/10.4M [00:00<00:00, 10.7MB
sub-MGH3_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/683k [00:00<?, ?B/s]


sub-MGH3_rec-uncombined02_T2starw.nii.gz:  80%|▊| 509k/632k [00:00<00:00, 2.58MB
sub-MGH3_UNIT1.nii.gz:  68%|██████████▏    | 11.7M/17.1M [00:00<00:00, 16.2MB/s]


                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  63%|▋| 6.55M/10.4M [00:00<00:00, 13.6MB


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


                                                                                
sub-MGH3_rec-uncombined03_T2starw.nii.gz:  22%|▏| 153k/683k [00:00<00:00, 1.40MB
sub-MGH3_UNIT1.nii.gz:  77%|███████████▌   | 13.2M/17.1M [00:00<00:00, 14.8MB/s]
                                                                                

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

                                                                                
sub-MGH3_inv-2_part-mag_MP2RAGE.nii.gz:  75%|▊| 7.85M/10.4M [00:00<00:00, 11.6MB
sub-MGH3_UNIT1.nii.gz:  86%|████████████▊  | 14.7M/17.1M [00:01<00:00, 13.7MB/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:  99%|▉| 10.3M/10.4M [00:00<00:00, 15.6MB



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


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



sub-MGH3_rec-uncombined06_T2starw.nii.gz:   0%|      | 0.00/751k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined04_T2starw.nii.gz:  11%| | 83.6k/758k [00:00<00:00, 836kB
sub-MGH3_rec-uncombined05_T2starw.nii.gz:  90%|▉| 691k/768k [00:00<00:00, 6.93MB

                                                                                
sub-MGH3_rec-uncombined06_T2starw.nii.gz:  50%|▍| 373k/751k [00:00<00:00, 3.06MB


                                                                                
sub-MGH3_rec-uncombined06_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined07_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined06_T2starw.nii.gz:  90%|▉| 679k/751k [00:00<00:00, 3.01MB



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

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


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

                                                                                
sub-MGH3_rec-uncombined08_T2starw.nii.gz:  41%|▍| 408k/988k [00:00<00:00, 4.17MB
sub-MGH3_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/910k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined07_T2starw.nii.gz:  38%|▍| 311k/808k [00:00<00:00, 2.57MB
sub-MGH3_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/860k [00:00<?, ?B/s]


                                                                                
sub-MGH3_rec-uncombined11_T2starw.nii.gz:  11%| | 102k/910k [00:00<00:00, 1.04MB
                                                                                
sub-MGH3_rec-uncombined09_T2starw.nii.gz:  36%|▎| 310k/860k [00:00<00:00, 2.34MB

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


                                                                                


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


                                                                                
                                                                                
sub-MGH3_rec-uncombined10_T2starw.nii.gz:  35%|▎| 289k/824k [00:00<00:00, 2.55MB

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


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


                                                                                
sub-MGH3_rec-uncombined12_T2starw.nii.gz:  63%|▋| 628k/995k [00:00<00:00, 5.59MB


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-uncombined13_T2starw.nii.gz:   9%| | 67.6k/776k [00:00<00:01, 689kB
                                                                                
                                                                                
sub-MGH3_rec-uncombined15_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-MGH3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/820k [00:00<?, ?B/s]
sub-MGH3_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MGH3_rec-uncombined15_T2starw.nii.gz:  77%|▊| 628k/820k [00:00<00:00, 6.39MB
                                                                                
sub-MGH3_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/799k [00:00<?, ?B/s]


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



                                                                                

sub-MGH3_rec-uncombined16_T2starw.nii.gz:  28%|▎| 305k/1.07M [00:00<00:00, 2.62M
sub-MGH3_rec-uncombined14_T2starw.nii.gz:  38%|▍| 307k/799k [00:00<00:00, 3.13MB


sub-MGH3_rec-uncombined18_T2starw.nii.gz:  32%|▎| 323k/0.99M [00:00<00:00, 3.29M
                                                                                
sub-MGH3_rec-uncombined16_T2starw.nii.gz:  98%|▉| 1.05M/1.07M [00:00<00:00, 5.46

                                                                                
sub-MGH3_rec-uncombined18_T2starw.nii.gz:  93%|▉| 951k/0.99M [00:00<00:00, 4.83M
sub-MGH3_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.44k [00:00<?, ?B/s]

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

sub-MGH3_rec-uncombined17_T2starw.nii.gz:  37%|▎| 407k/1.08M [00:00<00:00, 3.34M
                                                                                
sub-MGH3_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/994k [00:00<?, ?B/s]


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


                                                                                
                                                                                
sub-MGH3_rec-uncombined19_T2starw.nii.gz:  30%|▎| 293k/994k [00:00<00:00, 2.85MB

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

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

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


sub-MGH3_acq-anat_TB1TFL.nii.gz:  16%|█      | 153k/966k [00:00<00:00, 1.56MB/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_rec-uncombined20_T2starw.nii.gz:  33%|▎| 356k/1.05M [00:00<00:00, 3.63M

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

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

                                                                                
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.52M [00:00<?, ?B/s]
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:   3%| | 123k/3.65M [00:00<00:03, 1.2
sub-MGH3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/91.4k [00:00<?, ?B/s]
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  13%|▏| 594k/4.52M [00:00<00:00, 6.05MB/


                                                                                
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  33%|▎| 1.22M/3.65M [00:00<00:00, 6.


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


                                                                                
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  26%|▎| 1.16M/4.52M [00:00<00:00, 5.83MB
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  56%|▌| 2.04M/3.65M [00:00<00:00, 7.



sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   3%| | 545k/16.8M [00:00<00:03, 5.58MB/s
sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  51%|▌| 2.33M/4.52M [00:00<00:00, 8.67MB


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


                                                                                


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



sub-MGH3_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.49M/16.8M [00:00<00:02, 7.49MB/
sub-MGH3_acq-coilQaSagSmall_GFactor.nii.gz:  98%|▉| 3.57M/3.65M [00:00<00:00, 10
                                                                                


sub-MGH3_acq-coilQaSagLarge_SNR.nii.gz:  70%|▋| 3.17M/4.52M [00:00<00:00, 7.74MB
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.21M/16.8M [00:00<00:02, 7.43MB/
                                                                                
sub-MGH3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]
                                                                                




sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.54M/16.8M [00:00<00:01, 12.7MB/
sub-MGH3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.65k [00:00<?, ?B/s]
                                                                                
sub-MGH3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.7k [00:00<?, ?B/s]
                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  46%|▍| 7.79M/16.8M [00:00<00:00, 18.1MB/
sub-MGH3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-MGH3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/970k [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:  64%|▋| 10.8M/16.8M [00:00<00:00, 22.2MB/
sub-MGH3_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]


                                                                                
sub-MGH3_acq-famp_TB1TFL.nii.gz:  73%|█████▏ | 713k/970k [00:00<00:00, 5.70MB/s]

                                                                                
                                                                                
sub-MGH3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/98.6k [00:00<?, ?B/s]
                                                                                
sub-MGH3_acq-coilQaTra_GFactor.nii.gz:  77%|▊| 12.9M/16.8M [00:00<00:00, 17.1MB/
sub-MGH3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/94.2k [00:00<?, ?B/s]



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

                                                                                
                                                                                
sub-MNI1_UNIT1.json:   0%|                          | 0.00/2.02k [00:00<?, ?B/s]
                                                                                
sub-MNI1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]
                                                                                
sub-MNI1_T2starw.nii.gz:   0%|                      | 0.00/1.33M [00:00<?, ?B/s]
sub-MNI1_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/822k [00:00<?, ?B/s]


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


                                                                                
sub-MNI1_T2starw.nii.gz:  22%|███▏          | 306k/1.33M [00:00<00:00, 3.12MB/s]
                                                                                


sub-MNI1_rec-uncombined01_T2starw.nii.gz:  16%|▏| 130k/822k [00:00<00:00, 1.01MB
sub-MNI1_UNIT1.nii.gz:   0%|                        | 0.00/25.9M [00:00<?, ?B/s]


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

                                                                                
sub-MNI1_UNIT1.nii.gz:   1%|                | 170k/25.9M [00:00<00:17, 1.53MB/s]


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 120k/17.1M [00:00<00:15, 1.18MB/
sub-MNI1_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI1_UNIT1.nii.gz:   5%|▊              | 1.31M/25.9M [00:00<00:03, 7.09MB/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.25M/17.1M [00:00<00:02, 7.03MB
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.1M [00:00<?, ?B/s]


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.79M/17.1M [00:00<00:01, 11.1MB
sub-MNI1_UNIT1.nii.gz:  13%|█▉             | 3.46M/25.9M [00:00<00:01, 13.7MB/s]
sub-MNI1_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/766k [00:00<?, ?B/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:   2%| | 361k/19.1M [00:00<00:05, 3.67MB/



sub-MNI1_rec-uncombined02_T2starw.nii.gz:  62%|▌| 475k/766k [00:00<00:00, 4.84MB
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.87M/17.1M [00:00<00:01, 10.9MB
sub-MNI1_UNIT1.nii.gz:  19%|██▊            | 4.80M/25.9M [00:00<00:01, 13.2MB/s]



                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 1.02M/19.1M [00:00<00:03, 5.34MB
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.12M/17.1M [00:00<00:01, 11.6MB
sub-MNI1_UNIT1.nii.gz:  24%|███▌           | 6.11M/25.9M [00:00<00:01, 13.4MB/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:  11%| | 2.13M/19.1M [00:00<00:02, 8.13MB




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




                                                                                
sub-MNI1_UNIT1.nii.gz:  29%|████▎          | 7.51M/25.9M [00:00<00:01, 13.4MB/s]


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 6.63M/17.1M [00:00<00:00, 12.5MB



sub-MNI1_rec-uncombined03_T2starw.nii.gz:  32%|▎| 271k/843k [00:00<00:00, 2.74MB
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  17%|▏| 3.21M/19.1M [00:00<00:01, 9.35MB
                                                                                


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 7.87M/17.1M [00:00<00:00, 12.0MB
sub-MNI1_UNIT1.nii.gz:  34%|█████          | 8.80M/25.9M [00:00<00:01, 12.8MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.42M/19.1M [00:00<00:01, 10.5MB



sub-MNI1_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/914k [00:00<?, ?B/s]
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  56%|▌| 9.63M/17.1M [00:00<00:00, 13.9MB
sub-MNI1_UNIT1.nii.gz:  41%|██████▏        | 10.6M/25.9M [00:00<00:01, 14.6MB/s]




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




                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  31%|▎| 5.97M/19.1M [00:00<00:01, 11.7MB



sub-MNI1_rec-uncombined04_T2starw.nii.gz:  30%|▎| 271k/914k [00:00<00:00, 2.76MB
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  64%|▋| 11.0M/17.1M [00:00<00:00, 13.3MB
sub-MNI1_UNIT1.nii.gz:  46%|██████▉        | 12.0M/25.9M [00:00<00:01, 13.9MB/s]
                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.38M/19.1M [00:00<00:01, 11.7MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  72%|▋| 12.3M/17.1M [00:01<00:00, 13.4MB
sub-MNI1_UNIT1.nii.gz:  52%|███████▋       | 13.4M/25.9M [00:01<00:00, 13.9MB/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 9.41M/19.1M [00:00<00:00, 14.5MB



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




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




                                                                                


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 13.7M/17.1M [00:01<00:00, 13.7MB
sub-MNI1_UNIT1.nii.gz:  57%|████████▌      | 14.8M/25.9M [00:01<00:00, 14.0MB/s]
sub-MNI1_rec-uncombined06_T2starw.nii.gz:  45%|▍| 373k/828k [00:00<00:00, 3.78MB

sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  57%|▌| 10.8M/19.1M [00:00<00:00, 13.9MB


sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 15.2M/17.1M [00:01<00:00, 14.4MB
sub-MNI1_UNIT1.nii.gz:  63%|█████████▍     | 16.3M/25.9M [00:01<00:00, 14.7MB/s]
                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 12.2M/19.1M [00:01<00:00, 13.6MB
sub-MNI1_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 16.6M/17.1M [00:01<00:00, 14.1MB



sub-MNI1_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/865k [00:00<?, ?B/s]
sub-MNI1_UNIT1.nii.gz:  68%|██████████▎    | 17.8M/25.9M [00:01<00:00, 14.3MB/s]


                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 13.5M/19.1M [00:01<00:00, 13.6MB


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


                                                                                
sub-MNI1_rec-uncombined05_T2starw.nii.gz:  47%|▍| 408k/865k [00:00<00:00, 3.41MB
sub-MNI1_UNIT1.nii.gz:  74%|███████████    | 19.1M/25.9M [00:01<00:00, 13.1MB/s]
                                                                                
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 14.8M/19.1M [00:01<00:00, 12.6MB
sub-MNI1_UNIT1.nii.gz:  80%|████████████   | 20.9M/25.9M [00:01<00:00, 14.5MB/s]
sub-MNI1_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/891k [00:00<?, ?B/s]
sub-MNI1_inv-2_part-mag_MP2RAGE.nii.gz:  92%|▉| 17.5M/19.1M [00:01<00:00, 17.0MB



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




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




                                                                                
sub-MNI1_UNIT1.nii.gz:  89%|█████████████▎ | 23.1M/25.9M [00:01<00:00, 16.1MB/s]


sub-MNI1_rec-uncombined07_T2starw.nii.gz:  32%|▎| 289k/891k [00:00<00:00, 2.86MB
sub-MNI1_rec-uncombined08_T2starw.nii.gz:  33%|▎| 322k/979k [00:00<00:00, 3.29MB


                                                                                

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

                                                                                
sub-MNI1_rec-uncombined08_T2starw.nii.gz:  66%|▋| 645k/979k [00:00<00:00, 3.01MB
sub-MNI1_UNIT1.nii.gz:  95%|██████████████▎| 24.7M/25.9M [00:01<00:00, 13.3MB/s]



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

                                                                                

sub-MNI1_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/860k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined09_T2starw.nii.gz:  74%|▋| 663k/894k [00:00<00:00, 6.77MB
                                                                                
sub-MNI1_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                


sub-MNI1_rec-uncombined10_T2starw.nii.gz:  24%|▏| 203k/860k [00:00<00:00, 2.04MB
                                                                                
sub-MNI1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/941k [00:00<?, ?B/s]

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

                                                                                
sub-MNI1_rec-uncombined11_T2starw.nii.gz:  78%|▊| 730k/941k [00:00<00:00, 7.46MB

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

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


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


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


                                                                                
sub-MNI1_rec-uncombined13_T2starw.nii.gz:  52%|▌| 424k/810k [00:00<00:00, 3.74MB

                                                                                
sub-MNI1_rec-uncombined12_T2starw.nii.gz:  35%|▎| 339k/975k [00:00<00:00, 2.71MB
                                                                                
sub-MNI1_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/777k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined16_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_rec-uncombined15_T2starw.nii.gz:  59%|▌| 458k/777k [00:00<00:00, 4.68MB
                                                                                
sub-MNI1_rec-uncombined19_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-uncombined14_T2starw.nii.gz:  32%|▎| 255k/800k [00:00<00:00, 2.61MB
                                                                                
sub-MNI1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI1_rec-uncombined16_T2starw.nii.gz:  59%|▌| 556k/940k [00:00<00:00, 5.68MB

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

                                                                                
sub-MNI1_rec-uncombined17_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]
                                                                                
sub-MNI1_rec-uncombined17_T2starw.nii.gz:  31%|▎| 305k/968k [00:00<00:00, 3.04MB
sub-MNI1_rec-uncombined18_T2starw.nii.gz:   0%|      | 0.00/894k [00:00<?, ?B/s]
                                                                                

sub-MNI1_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/813k [00:00<?, ?B/s]
sub-MNI1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/943k [00:00<?, ?B/s]
sub-MNI1_rec-uncombined18_T2starw.nii.gz:  23%|▏| 203k/894k [00:00<00:00, 2.06MB
sub-MNI1_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



                                                                                

sub-MNI1_rec-uncombined19_T2starw.nii.gz:  21%|▏| 169k/813k [00:00<00:00, 1.64MB



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



                                                                                
sub-MNI1_acq-anat_TB1TFL.nii.gz:  22%|█▌     | 205k/943k [00:00<00:00, 1.73MB/s]
sub-MNI1_rec-uncombined18_T2starw.nii.gz:  76%|▊| 680k/894k [00:00<00:00, 3.71MB
                                                                                


sub-MNI1_rec-uncombined19_T2starw.nii.gz:  75%|▊| 611k/813k [00:00<00:00, 3.29MB

                                                                                
sub-MNI1_acq-anat_TB1TFL.nii.gz:  83%|█████▊ | 782k/943k [00:00<00:00, 3.93MB/s]


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

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

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

                                                                                
sub-MNI1_rec-uncombined20_T2starw.nii.gz:  22%|▏| 203k/924k [00:00<00:00, 2.06MB

sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.59M [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:  14%|▏| 679k/4.59M [00:00<00:00, 6.28MB/


sub-MNI1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [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:   7%| | 255k/3.68M [00:00<00:01, 2.5


                                                                                
sub-MNI1_acq-coilQaSagLarge_SNR.nii.gz:  28%|▎| 1.28M/4.59M [00:00<00:00, 6.30MB
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  35%|▎| 1.29M/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-coilQaSagLarge_SNR.nii.gz:  80%|▊| 3.69M/4.59M [00:00<00:00, 13.3MB
sub-MNI1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]
sub-MNI1_acq-coilQaSagSmall_GFactor.nii.gz:  78%|▊| 2.88M/3.68M [00:00<00:00, 11

                                                                                
                                                                                
                                                                                

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

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

sub-MNI1_acq-famp_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:   1%| | 220k/16.2M [00:00<00:09, 1.77MB/s
sub-MNI1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/952k [00:00<?, ?B/s]
sub-MNI1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.13k [00:00<?, ?B/s]


                                                                                

sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.97M/16.2M [00:00<00:00, 14.2MB/
sub-MNI1_acq-famp_TB1TFL.nii.gz:  21%|█▍     | 203k/952k [00:00<00:00, 2.04MB/s]
sub-MNI1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.3k [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-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]


                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 4.34M/16.2M [00:00<00:01, 10.9MB/
                                                                                
sub-MNI1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 6.26M/16.2M [00:00<00:00, 13.7MB/
sub-MNI1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/95.6k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  60%|▌| 9.75M/16.2M [00:00<00:00, 20.6MB/
sub-MNI2_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]
                                                                                

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


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


                                                                                
                                                                                
sub-MNI2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.03k [00:00<?, ?B/s]
                                                                                
sub-MNI1_acq-coilQaTra_GFactor.nii.gz:  74%|▋| 11.9M/16.2M [00:00<00:00, 15.8MB/
                                                                                
sub-MNI2_UNIT1.nii.gz:   0%|                        | 0.00/26.1M [00:00<?, ?B/s]

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



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/16.7M [00:00<?, ?B/s]
sub-MNI2_UNIT1.nii.gz:   3%|▌               | 850k/26.1M [00:00<00:03, 8.70MB/s]

sub-MNI2_T2starw.nii.gz:  52%|███████▎      | 628k/1.18M [00:00<00:00, 6.34MB/s]




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




                                                                                
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 340k/16.7M [00:00<00:05, 3.27MB/


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 203k/14.8M [00:00<00:08, 1.88MB/
                                                                                
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 968k/16.7M [00:00<00:03, 5.05MB/


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 850k/14.8M [00:00<00:03, 4.54MB/
sub-MNI2_UNIT1.nii.gz:   6%|▉              | 1.67M/26.1M [00:00<00:03, 6.73MB/s]
sub-MNI2_rec-uncombined01_T2starw.nii.gz:   0%|      | 0.00/718k [00:00<?, ?B/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:  12%| | 1.81M/14.8M [00:00<00:02, 6.43MB



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 1.95M/16.7M [00:00<00:02, 6.78MB
sub-MNI2_UNIT1.nii.gz:  13%|█▉             | 3.31M/26.1M [00:00<00:02, 9.92MB/s]
sub-MNI2_rec-uncombined01_T2starw.nii.gz:  47%|▍| 340k/718k [00:00<00:00, 3.46MB
                                                                                
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.08M/16.7M [00:00<00:01, 8.42MB


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  17%|▏| 2.49M/14.8M [00:00<00:01, 6.52MB
sub-MNI2_UNIT1.nii.gz:  17%|██▌            | 4.43M/26.1M [00:00<00:02, 10.4MB/s]

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

                                                                                
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 4.25M/16.7M [00:00<00:01, 9.72MB
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.40M/14.8M [00:00<00:01, 7.53MB
sub-MNI2_UNIT1.nii.gz:  21%|███▏           | 5.61M/26.1M [00:00<00:01, 11.0MB/s]

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

                                                                                
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  34%|▎| 5.62M/16.7M [00:00<00:01, 11.2MB


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  32%|▎| 4.74M/14.8M [00:00<00:01, 9.65MB
sub-MNI2_UNIT1.nii.gz:  27%|████           | 7.00M/26.1M [00:00<00:01, 12.1MB/s]
sub-MNI2_rec-uncombined03_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  44%|▍| 7.28M/16.7M [00:00<00:00, 12.4MB
sub-MNI2_UNIT1.nii.gz:  33%|████▉          | 8.68M/26.1M [00:00<00:01, 13.0MB/s]


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  43%|▍| 6.43M/14.8M [00:00<00:00, 11.4MB

sub-MNI2_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/723k [00:00<?, ?B/s]
sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 8.91M/16.7M [00:00<00:00, 13.7MB
sub-MNI2_UNIT1.nii.gz:  39%|█████▉         | 10.3M/26.1M [00:00<00:01, 14.1MB/s]


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 8.07M/14.8M [00:00<00:00, 13.1MB

sub-MNI2_rec-uncombined02_T2starw.nii.gz:  82%|▊| 594k/723k [00:00<00:00, 6.04MB

                                                                                
sub-MNI2_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/775k [00:00<?, ?B/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 9.34M/14.8M [00:00<00:00, 12.9MB



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 10.2M/16.7M [00:00<00:00, 13.3MB
sub-MNI2_UNIT1.nii.gz:  45%|██████▋        | 11.7M/26.1M [00:01<00:01, 13.6MB/s]
sub-MNI2_rec-uncombined03_T2starw.nii.gz:  81%|▊| 629k/775k [00:00<00:00, 6.41MB

                                                                                
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 10.6M/14.8M [00:01<00:00, 12.7MB



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 11.5M/16.7M [00:01<00:00, 13.0MB
sub-MNI2_UNIT1.nii.gz:  50%|███████▍       | 13.0M/26.1M [00:01<00:01, 13.4MB/s]

sub-MNI2_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/782k [00:00<?, ?B/s]
sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 12.4M/14.8M [00:01<00:00, 14.6MB



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 13.3M/16.7M [00:01<00:00, 14.6MB
sub-MNI2_UNIT1.nii.gz:  56%|████████▍      | 14.8M/26.1M [00:01<00:00, 14.8MB/s]

sub-MNI2_rec-uncombined04_T2starw.nii.gz:  61%|▌| 476k/782k [00:00<00:00, 4.85MB
                                                                                
sub-MNI2_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/767k [00:00<?, ?B/s]


sub-MNI2_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 13.8M/14.8M [00:01<00:00, 14.1MB



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 14.7M/16.7M [00:01<00:00, 14.2MB
sub-MNI2_UNIT1.nii.gz:  62%|█████████▎     | 16.2M/26.1M [00:01<00:00, 14.5MB/s]
                                                                                
sub-MNI2_rec-uncombined05_T2starw.nii.gz:  40%|▍| 307k/767k [00:00<00:00, 2.59MB



sub-MNI2_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 16.1M/16.7M [00:01<00:00, 14.0MB
sub-MNI2_UNIT1.nii.gz:  67%|██████████     | 17.6M/26.1M [00:01<00:00, 14.1MB/s]


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


                                                                                

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

                                                                                
sub-MNI2_UNIT1.nii.gz:  72%|██████████▊    | 18.9M/26.1M [00:01<00:00, 11.9MB/s]
sub-MNI2_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                

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


                                                                                
sub-MNI2_UNIT1.nii.gz:  82%|████████████▎  | 21.4M/26.1M [00:01<00:00, 14.7MB/s]


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


                                                                                
sub-MNI2_rec-uncombined06_T2starw.nii.gz:  38%|▍| 289k/760k [00:00<00:00, 2.60MB
sub-MNI2_UNIT1.nii.gz:  91%|█████████████▋ | 23.8M/26.1M [00:01<00:00, 17.3MB/s]

                                                                                
                                                                                

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


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



                                                                                
sub-MNI2_rec-uncombined07_T2starw.nii.gz:  64%|▋| 498k/783k [00:00<00:00, 4.24MB

sub-MNI2_rec-uncombined09_T2starw.nii.gz:  41%|▍| 322k/781k [00:00<00:00, 3.28MB


sub-MNI2_rec-uncombined08_T2starw.nii.gz:  50%|▍| 391k/784k [00:00<00:00, 3.98MB
                                                                                
                                                                                

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

                                                                                

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

                                                                                
sub-MNI2_rec-uncombined11_T2starw.nii.gz:  34%|▎| 288k/845k [00:00<00:00, 2.44MB

sub-MNI2_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/782k [00:00<?, ?B/s]
                                                                                
sub-MNI2_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/831k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined10_T2starw.nii.gz:  39%|▍| 306k/782k [00:00<00:00, 2.67MB
sub-MNI2_rec-uncombined13_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MNI2_rec-uncombined12_T2starw.nii.gz:  56%|▌| 462k/831k [00:00<00:00, 4.28MB

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

sub-MNI2_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/730k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined16_T2starw.nii.gz:   0%|      | 0.00/780k [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:  63%|▋| 458k/727k [00:00<00:00, 4.67MB

sub-MNI2_rec-uncombined14_T2starw.nii.gz:  18%|▏| 130k/730k [00:00<00:00, 1.21MB
                                                                                

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


sub-MNI2_rec-uncombined16_T2starw.nii.gz:  35%|▎| 271k/780k [00:00<00:00, 1.92MB
                                                                                
sub-MNI2_rec-uncombined15_T2starw.nii.gz:  20%|▏| 135k/667k [00:00<00:00, 1.26MB

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

                                                                                
                                                                                
sub-MNI2_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [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-uncombined18_T2starw.nii.gz:   0%|      | 0.00/788k [00:00<?, ?B/s]
sub-MNI2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.59k [00:00<?, ?B/s]


                                                                                


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


                                                                                
sub-MNI2_rec-uncombined17_T2starw.nii.gz:  17%|▏| 136k/816k [00:00<00:00, 1.38MB

sub-MNI2_rec-uncombined18_T2starw.nii.gz:  36%|▎| 288k/788k [00:00<00:00, 2.92MB
                                                                                
sub-MNI2_rec-uncombined20_T2starw.nii.gz:   0%|      | 0.00/802k [00:00<?, ?B/s]

                                                                                
sub-MNI2_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/666k [00:00<?, ?B/s]
sub-MNI2_rec-uncombined20_T2starw.nii.gz:  66%|▋| 527k/802k [00:00<00:00, 5.39MB
sub-MNI2_rec-uncombined20_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_rec-uncombined19_T2starw.nii.gz:  51%|▌| 339k/666k [00:00<00:00, 2.95MB

                                                                                


sub-MNI2_acq-anat_TB1TFL.nii.gz:  25%|█▋     | 204k/815k [00:00<00:00, 1.87MB/s]
sub-MNI2_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]
                                                                                

sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]
                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  24%|▏| 884k/3.65M [00:00<00:00, 9.0
sub-MNI2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]

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


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


                                                                                
sub-MNI2_acq-coilQaSagSmall_GFactor.nii.gz:  63%|▋| 2.29M/3.65M [00:00<00:00, 11
                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:   3%| | 147k/4.13M [00:00<00:02, 1.40MB/
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.9M [00:00<?, ?B/s]
sub-MNI2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]


                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  38%|▍| 1.55M/4.13M [00:00<00:00, 9.01MB
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:   3%| | 409k/15.9M [00:00<00:03, 4.17MB/s


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


                                                                                
sub-MNI2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.2k [00:00<?, ?B/s]
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  16%|▏| 2.51M/15.9M [00:00<00:00, 14.7MB/


                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  59%|▌| 2.44M/4.13M [00:00<00:00, 7.05MB


sub-MNI2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/91.6k [00:00<?, ?B/s]
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.42M/15.9M [00:00<00:00, 17.1MB/


                                                                                
sub-MNI2_acq-coilQaSagLarge_SNR.nii.gz:  95%|▉| 3.92M/4.13M [00:00<00:00, 9.83MB


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


                                                                                

                                                                                
sub-MNI2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/91.6k [00:00<?, ?B/s]
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 6.06M/15.9M [00:00<00:00, 14.7MB/

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

                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  47%|▍| 7.51M/15.9M [00:00<00:00, 14.8MB/

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

                                                                                
sub-MNI2_acq-coilQaTra_GFactor.nii.gz:  70%|▋| 11.1M/15.9M [00:00<00:00, 22.0MB/

sub-MNI2_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.13k [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:  90%|▉| 14.3M/15.9M [00:00<00:00, 25.8MB/


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:  53%|███▋   | 477k/908k [00:00<00:00, 4.87MB/s]



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

                                                                                
                                                                                
                                                                                

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

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

sub-MNI3_UNIT1.json:   0%|                          | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-MNI3_T2starw.json:   0%|                        | 0.00/2.53k [00:00<?, ?B/s]
                                                                                
sub-MNI3_T2starw.nii.gz:   0%|                      | 0.00/1.36M [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:   0%|                        | 0.00/26.1M [00:00<?, ?B/s]


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


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


                                                                                
sub-MNI3_T2starw.nii.gz:  24%|███▍          | 339k/1.36M [00:00<00:00, 2.77MB/s]
sub-MNI3_UNIT1.nii.gz:   1%|▏               | 289k/26.1M [00:00<00:09, 2.96MB/s]
                                                                                

sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.3M [00:00<?, ?B/s]
sub-MNI3_UNIT1.nii.gz:   7%|█              | 1.74M/26.1M [00:00<00:02, 10.2MB/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.6M [00:00<?, ?B/s]



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



                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 305k/17.3M [00:00<00:06, 2.68MB/
sub-MNI3_UNIT1.nii.gz:  16%|██▎            | 4.07M/26.1M [00:00<00:01, 16.6MB/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:   2%| | 373k/19.6M [00:00<00:05, 3.81MB/
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.48M/17.3M [00:00<00:02, 7.99MB
sub-MNI3_UNIT1.nii.gz:  24%|███▌           | 6.17M/26.1M [00:00<00:01, 18.7MB/s]




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




                                                                                
sub-MNI3_rec-uncombined01_T2starw.nii.gz:  27%|▎| 221k/814k [00:00<00:00, 2.00MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 1.04M/19.6M [00:00<00:03, 5.75MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.51M/17.3M [00:00<00:01, 9.21MB
                                                                                
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:   8%| | 1.64M/19.6M [00:00<00:03, 5.97MB

sub-MNI3_UNIT1.nii.gz:  30%|████▌          | 7.96M/26.1M [00:00<00:01, 14.7MB/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.71M/17.3M [00:00<00:01, 10.5MB
sub-MNI3_rec-uncombined03_T2starw.nii.gz:   0%|      | 0.00/828k [00:00<?, ?B/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.98M/19.6M [00:00<00:01, 9.13MB

sub-MNI3_UNIT1.nii.gz:  37%|█████▌         | 9.79M/26.1M [00:00<00:01, 16.0MB/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  32%|▎| 5.48M/17.3M [00:00<00:00, 13.3MB
sub-MNI3_rec-uncombined03_T2starw.nii.gz:  54%|▌| 443k/828k [00:00<00:00, 4.53MB




sub-MNI3_rec-uncombined02_T2starw.nii.gz:   0%|      | 0.00/765k [00:00<?, ?B/s]
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.45M/19.6M [00:00<00:01, 11.4MB



                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 6.77M/17.3M [00:00<00:00, 12.4MB

sub-MNI3_UNIT1.nii.gz:  44%|██████▌        | 11.4M/26.1M [00:00<00:01, 14.4MB/s]




sub-MNI3_rec-uncombined02_T2starw.nii.gz:  44%|▍| 339k/765k [00:00<00:00, 3.42MB
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  28%|▎| 5.54M/19.6M [00:00<00:01, 11.2MB




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



                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 7.99M/17.3M [00:00<00:00, 11.2MB

sub-MNI3_UNIT1.nii.gz:  49%|███████▍       | 12.9M/26.1M [00:00<00:01, 12.9MB/s]


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  34%|▎| 6.62M/19.6M [00:00<00:01, 10.5MB
sub-MNI3_rec-uncombined02_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]



                                                                                
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  55%|▌| 9.48M/17.3M [00:00<00:00, 12.1MB



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



                                                                                


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.71M/19.6M [00:00<00:01, 10.3MB

sub-MNI3_UNIT1.nii.gz:  54%|████████▏      | 14.2M/26.1M [00:01<00:01, 12.2MB/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 10.9M/17.3M [00:00<00:00, 12.8MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 9.63M/19.6M [00:00<00:00, 13.2MB

sub-MNI3_UNIT1.nii.gz:  62%|█████████▎     | 16.2M/26.1M [00:01<00:00, 14.3MB/s]
sub-MNI3_rec-uncombined05_T2starw.nii.gz:   0%|      | 0.00/844k [00:00<?, ?B/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 12.8M/17.3M [00:01<00:00, 15.0MB


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 11.6M/19.6M [00:01<00:00, 15.2MB

sub-MNI3_UNIT1.nii.gz:  69%|██████████▍    | 18.1M/26.1M [00:01<00:00, 15.8MB/s]
sub-MNI3_rec-uncombined05_T2starw.nii.gz:  58%|▌| 492k/844k [00:00<00:00, 5.01MB
sub-MNI3_rec-uncombined04_T2starw.nii.gz:   0%|      | 0.00/898k [00:00<?, ?B/s]
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  84%|▊| 14.5M/17.3M [00:01<00:00, 15.7MB



                                                                                
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 13.0M/19.6M [00:01<00:00, 14.1MB

sub-MNI3_UNIT1.nii.gz:  75%|███████████▎   | 19.7M/26.1M [00:01<00:00, 14.5MB/s]
sub-MNI3_rec-uncombined04_T2starw.nii.gz:  49%|▍| 442k/898k [00:00<00:00, 4.51MB
sub-MNI3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 16.0M/17.3M [00:01<00:00, 14.5MB
                                                                                



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



                                                                                


sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  74%|▋| 14.4M/19.6M [00:01<00:00, 13.4MB
sub-MNI3_UNIT1.nii.gz:  81%|████████████▏  | 21.1M/26.1M [00:01<00:00, 12.9MB/s]
                                                                                
sub-MNI3_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 15.7M/19.6M [00:01<00:00, 12.7MB

sub-MNI3_UNIT1.nii.gz:  87%|█████████████  | 22.8M/26.1M [00:01<00:00, 14.0MB/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:  94%|▉| 18.4M/19.6M [00:01<00:00, 16.7MB



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



                                                                                

sub-MNI3_UNIT1.nii.gz:  95%|██████████████▎| 24.9M/26.1M [00:01<00:00, 15.6MB/s]
                                                                                
sub-MNI3_rec-uncombined06_T2starw.nii.gz:  24%|▏| 198k/821k [00:00<00:00, 1.68MB

                                                                                
sub-MNI3_rec-uncombined07_T2starw.nii.gz:   0%|      | 0.00/872k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined09_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                
sub-MNI3_rec-uncombined07_T2starw.nii.gz:  72%|▋| 628k/872k [00:00<00:00, 6.20MB

                                                                                
sub-MNI3_rec-uncombined07_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_rec-uncombined09_T2starw.nii.gz:   0%|      | 0.00/861k [00:00<?, ?B/s]


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


                                                                                
sub-MNI3_rec-uncombined08_T2starw.nii.gz:  57%|▌| 543k/945k [00:00<00:00, 5.55MB

sub-MNI3_rec-uncombined09_T2starw.nii.gz:  24%|▏| 203k/861k [00:00<00:00, 2.06MB
                                                                                
sub-MNI3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/847k [00:00<?, ?B/s]


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



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



                                                                                
sub-MNI3_rec-uncombined09_T2starw.nii.gz:  85%|▊| 730k/861k [00:00<00:00, 4.01MB

                                                                                
sub-MNI3_rec-uncombined10_T2starw.nii.gz:  60%|▌| 509k/847k [00:00<00:00, 4.79MB


sub-MNI3_rec-uncombined11_T2starw.nii.gz:  15%|▏| 136k/903k [00:00<00:00, 1.38MB
                                                                                
sub-MNI3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MNI3_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/933k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined14_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]

                                                                                
sub-MNI3_rec-uncombined12_T2starw.nii.gz:  62%|▌| 577k/933k [00:00<00:00, 5.22MB

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


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


                                                                                
                                                                                

sub-MNI3_rec-uncombined14_T2starw.nii.gz:   0%|      | 0.00/815k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined13_T2starw.nii.gz:  69%|▋| 560k/806k [00:00<00:00, 5.72MB

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

                                                                                
sub-MNI3_rec-uncombined14_T2starw.nii.gz:  21%|▏| 170k/815k [00:00<00:00, 1.72MB

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-uncombined16_T2starw.nii.gz:   0%|      | 0.00/966k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.54k [00:00<?, ?B/s]


                                                                                
sub-MNI3_rec-uncombined15_T2starw.nii.gz:  25%|▏| 186k/750k [00:00<00:00, 1.89MB


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

sub-MNI3_rec-uncombined16_T2starw.nii.gz:  32%|▎| 306k/966k [00:00<00:00, 3.11MB


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

sub-MNI3_rec-uncombined16_T2starw.nii.gz:  91%|▉| 883k/966k [00:00<00:00, 4.73MB

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

                                                                                
sub-MNI3_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.02M [00:00<?, ?B/s]
sub-MNI3_rec-uncombined18_T2starw.nii.gz:  58%|▌| 561k/965k [00:00<00:00, 5.74MB
                                                                                
sub-MNI3_rec-uncombined19_T2starw.nii.gz:   0%|      | 0.00/912k [00:00<?, ?B/s]
sub-MNI3_rec-uncombined17_T2starw.nii.gz:  60%|▌| 628k/1.02M [00:00<00:00, 5.94M


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


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

                                                                                
sub-MNI3_rec-uncombined19_T2starw.nii.gz:  18%|▏| 169k/912k [00:00<00:00, 1.53MB
                                                                                
sub-MNI3_rec-uncombined20_T2starw.nii.gz:  21%|▏| 203k/959k [00:00<00:00, 2.07MB
sub-MNI3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.71k [00:00<?, ?B/s]
                                                                                
sub-MNI3_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.25k [00:00<?, ?B/s]

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


sub-MNI3_acq-anat_TB1TFL.nii.gz:  44%|███    | 408k/921k [00:00<00:00, 3.26MB/s]
                                                                                
sub-MNI3_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]
                                                                                
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.52M [00:00<?, ?B/s]
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.65M [00:00<?, ?B/s]


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


                                                                                
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  10%| | 475k/4.52M [00:00<00:00, 4.85MB/
sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  10%| | 390k/3.65M [00:00<00:00, 3.9


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



sub-MNI3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.8k [00:00<?, ?B/s]
                                                                                
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  40%|▍| 1.81M/4.52M [00:00<00:00, 9.32MB

sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  36%|▎| 1.33M/3.65M [00:00<00:00, 7.


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   1%| | 225k/16.1M [00:00<00:07, 2.26MB/s
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  67%|▋| 3.04M/4.52M [00:00<00:00, 10.8MB

sub-MNI3_acq-coilQaSagSmall_GFactor.nii.gz:  83%|▊| 3.02M/3.65M [00:00<00:00, 12



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


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.30M/16.1M [00:00<00:02, 7.52MB/




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




                                                                                
                                                                                
                                                                                
sub-MNI3_acq-coilQaSagLarge_SNR.nii.gz:  90%|▉| 4.07M/4.52M [00:00<00:00, 9.19MB
                                                                                



sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  13%|▏| 2.03M/16.1M [00:00<00:02, 5.54MB/
sub-MNI3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/946k [00:00<?, ?B/s]
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  42%|▍| 6.78M/16.1M [00:00<00:00, 19.8MB/

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



                                                                                



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



                                                                                
sub-MNI3_acq-famp_TB1TFL.nii.gz:  41%|██▉    | 391k/946k [00:00<00:00, 3.96MB/s]
                                                                                
                                                                                
sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  56%|▌| 9.02M/16.1M [00:00<00:00, 16.1MB/
sub-MNI3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.21k [00:00<?, ?B/s]
                                                                                
sub-MNI3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/93.7k [00:00<?, ?B/s]


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 12.2M/16.1M [00:00<00:00, 20.5MB/
sub-MPI1_UNIT1.json:   0%|                          | 0.00/2.04k [00:00<?, ?B/s]

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


sub-MNI3_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 14.5M/16.1M [00:00<00:00, 19.4MB/
                                                                                
sub-MPI1_UNIT1.nii.gz:   2%|▍               | 628k/25.0M [00:00<00:04, 6.22MB/s]

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


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


                                                                                
sub-MPI1_UNIT1.nii.gz:  13%|█▉             | 3.23M/25.0M [00:00<00:01, 18.5MB/s]

sub-MPI1_T2starw.nii.gz:  23%|███▏          | 306k/1.29M [00:00<00:00, 3.12MB/s]


sub-MPI1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.06k [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:  21%|███▏           | 5.34M/25.0M [00:00<00:01, 20.1MB/s]

sub-MPI1_T2starw.nii.gz:  95%|████████████▎| 1.23M/1.29M [00:00<00:00, 7.00MB/s]

                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 629k/19.8M [00:00<00:03, 6.41MB/
sub-MPI1_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]



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

                                                                                
sub-MPI1_UNIT1.nii.gz:  29%|████▎          | 7.27M/25.0M [00:00<00:01, 18.3MB/s]
sub-MPI1_rec-uncombined11_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]

                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 187k/18.5M [00:00<00:10, 1.88MB/


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.23M/19.8M [00:00<00:03, 5.51MB
sub-MPI1_UNIT1.nii.gz:  36%|█████▍         | 9.05M/25.0M [00:00<00:01, 16.3MB/s]
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.24M/18.5M [00:00<00:02, 7.28MB

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


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.49M/19.8M [00:00<00:02, 8.73MB
sub-MPI1_UNIT1.nii.gz:  44%|██████▌        | 10.9M/25.0M [00:00<00:00, 17.2MB/s]
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  15%|▏| 2.72M/18.5M [00:00<00:01, 11.0MB

sub-MPI1_rec-uncombined10_T2starw.nii.gz:  45%|▍| 442k/980k [00:00<00:00, 4.50MB


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.94M/19.8M [00:00<00:01, 11.1MB
                                                                                



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.79M/18.5M [00:00<00:01, 11.0MB
sub-MPI1_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/977k [00:00<?, ?B/s]
sub-MPI1_UNIT1.nii.gz:  50%|███████▌       | 12.6M/25.0M [00:00<00:00, 15.4MB/s]


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 5.03M/19.8M [00:00<00:01, 10.6MB
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.43M/18.5M [00:00<00:01, 13.2MB
sub-MPI1_rec-uncombined11_T2starw.nii.gz:  52%|▌| 507k/977k [00:00<00:00, 5.17MB
sub-MPI1_UNIT1.nii.gz:  57%|████████▌      | 14.3M/25.0M [00:00<00:00, 16.0MB/s]


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.59M/19.8M [00:00<00:01, 12.5MB




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




                                                                                
                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.69M/18.5M [00:00<00:01, 11.6MB
sub-MPI1_UNIT1.nii.gz:  63%|█████████▌     | 15.9M/25.0M [00:01<00:00, 14.1MB/s]


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  39%|▍| 7.81M/19.8M [00:00<00:01, 11.4MB
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.58M/18.5M [00:00<00:00, 14.1MB

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

                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 9.23M/19.8M [00:00<00:00, 12.2MB
sub-MPI1_UNIT1.nii.gz:  69%|██████████▍    | 17.4M/25.0M [00:01<00:00, 14.0MB/s]

sub-MPI1_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/969k [00:00<?, ?B/s]
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 9.97M/18.5M [00:00<00:00, 13.7MB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 11.0M/19.8M [00:00<00:00, 13.9MB
sub-MPI1_UNIT1.nii.gz:  76%|███████████▍   | 19.0M/25.0M [00:01<00:00, 15.0MB/s]

sub-MPI1_rec-uncombined12_T2starw.nii.gz:  44%|▍| 425k/969k [00:00<00:00, 4.32MB




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




                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  61%|▌| 11.3M/18.5M [00:00<00:00, 13.0MB

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

                                                                                
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  62%|▌| 12.3M/19.8M [00:01<00:00, 11.1MB
sub-MPI1_UNIT1.nii.gz:  82%|████████████▎  | 20.5M/25.0M [00:01<00:00, 12.1MB/s]
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 12.6M/18.5M [00:01<00:00, 11.9MB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  72%|▋| 14.2M/19.8M [00:01<00:00, 13.1MB
sub-MPI1_UNIT1.nii.gz:  90%|█████████████▍ | 22.5M/25.0M [00:01<00:00, 14.3MB/s]



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  79%|▊| 14.6M/18.5M [00:01<00:00, 14.3MB
sub-MPI1_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]




sub-MPI1_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/954k [00:00<?, ?B/s]
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  81%|▊| 16.1M/19.8M [00:01<00:00, 15.0MB
sub-MPI1_UNIT1.nii.gz:  98%|██████████████▋| 24.5M/25.0M [00:01<00:00, 15.7MB/s]
                                                                                
sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 16.3M/18.5M [00:01<00:00, 14.3MB

sub-MPI1_rec-uncombined14_T2starw.nii.gz:  26%|▎| 271k/1.03M [00:00<00:00, 2.42M




sub-MPI1_rec-uncombined13_T2starw.nii.gz:  30%|▎| 288k/954k [00:00<00:00, 2.92MB
sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  89%|▉| 17.7M/19.8M [00:01<00:00, 14.3MB
                                                                                



sub-MPI1_inv-1_part-mag_MP2RAGE.nii.gz:  96%|▉| 17.7M/18.5M [00:01<00:00, 13.5MB




sub-MPI1_rec-uncombined13_T2starw.nii.gz: 100%|▉| 951k/954k [00:00<00:00, 5.15MB




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


sub-MPI1_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 19.1M/19.8M [00:01<00:00, 12.6MB
                                                                                

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

                                                                                
sub-MPI1_rec-uncombined15_T2starw.nii.gz:  82%|▊| 798k/971k [00:00<00:00, 8.04MB
                                                                                
sub-MPI1_rec-uncombined17_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined18_T2starw.json:   0%|       | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined17_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]

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


                                                                                
sub-MPI1_rec-uncombined17_T2starw.nii.gz:  57%|▌| 590k/1.01M [00:00<00:00, 5.96M


sub-MPI1_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
                                                                                
sub-MPI1_rec-uncombined16_T2starw.nii.gz:  28%|▎| 288k/1.01M [00:00<00:00, 2.50M

                                                                                
sub-MPI1_rec-uncombined18_T2starw.nii.gz:  16%|▏| 170k/1.04M [00:00<00:00, 1.72M
sub-MPI1_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.06M [00:00<?, ?B/s]

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

                                                                                
                                                                                
sub-MPI1_rec-uncombined19_T2starw.nii.gz:  39%|▍| 425k/1.06M [00:00<00:00, 4.31M
                                                                                
sub-MPI1_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]

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

                                                                                
sub-MPI1_rec-uncombined20_T2starw.nii.gz:  59%|▌| 633k/1.05M [00:00<00:00, 6.36M
                                                                                

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

                                                                                
sub-MPI1_rec-uncombined1_T2starw.nii.gz:  30%|▎| 305k/0.99M [00:00<00:00, 2.88MB
                                                                                
sub-MPI1_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]

sub-MPI1_rec-uncombined23_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-uncombined21_T2starw.nii.gz:  29%|▎| 306k/1.03M [00:00<00:00, 2.83M
                                                                                
sub-MPI1_rec-uncombined3_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-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI1_rec-uncombined23_T2starw.nii.gz:  80%|▊| 850k/1.04M [00:00<00:00, 8.67M

sub-MPI1_rec-uncombined22_T2starw.nii.gz:  79%|▊| 850k/1.05M [00:00<00:00, 8.68M
                                                                                
sub-MPI1_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/993k [00:00<?, ?B/s]

                                                                                


sub-MPI1_rec-uncombined24_T2starw.nii.gz:  28%|▎| 288k/0.99M [00:00<00:00, 2.41M
                                                                                
sub-MPI1_rec-uncombined3_T2starw.nii.gz:  15%|▏| 152k/993k [00:00<00:00, 1.52MB/

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


sub-MPI1_rec-uncombined2_T2starw.nii.gz:  16%|▏| 152k/968k [00:00<00:00, 1.29MB/
                                                                                
sub-MPI1_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                

sub-MPI1_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/967k [00:00<?, ?B/s]
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-uncombined7_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MPI1_rec-uncombined4_T2starw.nii.gz:  39%|▍| 373k/967k [00:00<00:00, 3.50MB/
                                                                                
sub-MPI1_rec-uncombined5_T2starw.nii.gz:  54%|▌| 543k/0.98M [00:00<00:00, 5.55MB
sub-MPI1_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.01M [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined8_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-uncombined7_T2starw.nii.gz:  44%|▍| 459k/1.01M [00:00<00:00, 4.68MB
                                                                                
sub-MPI1_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/996k [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:  55%|▌| 527k/967k [00:00<00:00, 3.94MB/
sub-MPI1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/844k [00:00<?, ?B/s]

                                                                                
sub-MPI1_rec-uncombined8_T2starw.nii.gz:  31%|▎| 305k/996k [00:00<00:00, 2.88MB/
                                                                                



sub-MPI1_acq-anat_TB1TFL.nii.gz:  55%|███▊   | 460k/844k [00:00<00:00, 3.76MB/s]
sub-MPI1_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.62k [00:00<?, ?B/s]
                                                                                

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

                                                                                
sub-MPI1_rec-uncombined9_T2starw.nii.gz:  38%|▍| 370k/981k [00:00<00:00, 3.40MB/
                                                                                
sub-MPI1_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.16k [00:00<?, ?B/s]
                                                                                

sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.99M [00:00<?, ?B/s]
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.59M [00:00<?, ?B/s]
sub-MPI1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.07k [00:00<?, ?B/s]


                                                                                
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:   9%| | 356k/3.99M [00:00<00:01, 3.58MB/
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  14%|▏| 510k/3.59M [00:00<00:00, 5.2
sub-MPI1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/87.2k [00:00<?, ?B/s]



sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.6M [00:00<?, ?B/s]
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  54%|▌| 2.16M/3.99M [00:00<00:00, 12.5MB
sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  62%|▌| 2.23M/3.59M [00:00<00:00, 12


                                                                                


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%| | 272k/15.6M [00:00<00:05, 2.78MB/s
sub-MPI1_acq-coilQaSagLarge_SNR.nii.gz:  85%|▊| 3.37M/3.99M [00:00<00:00, 11.1MB

sub-MPI1_acq-coilQaSagSmall_GFactor.nii.gz:  96%|▉| 3.45M/3.59M [00:00<00:00, 11

                                                                                
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:   6%| | 1.01M/15.6M [00:00<00:02, 5.10MB/
sub-MPI1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.05k [00:00<?, ?B/s]

sub-MPI1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/88.6k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.77M/15.6M [00:00<00:02, 6.34MB/
sub-MPI1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.08k [00:00<?, ?B/s]
                                                                                

sub-MPI1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/87.9k [00:00<?, ?B/s]
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  33%|▎| 5.22M/15.6M [00:00<00:00, 17.6MB/

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

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



sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  45%|▍| 7.01M/15.6M [00:00<00:00, 18.0MB/
                                                                                
sub-MPI1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/948k [00:00<?, ?B/s]
sub-MPI1_acq-coilQaTra_GFactor.nii.gz:  67%|▋| 10.4M/15.6M [00:00<00:00, 23.9MB/

sub-MPI1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.0k [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:  88%|▉| 13.7M/15.6M [00:00<00:00, 26.8MB/
sub-MPI1_acq-famp_TB1TFL.nii.gz:  46%|███▎   | 441k/948k [00:00<00:00, 3.73MB/s]

                                                                                

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

sub-MPI1_acq-refv-1.5_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-MPI2_UNIT1.json:   0%|                          | 0.00/2.03k [00:00<?, ?B/s]
                                                                                
sub-MPI2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.05k [00:00<?, ?B/s]
                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/18.2M [00:00<?, ?B/s]

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



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



                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 221k/18.2M [00:00<00:08, 2.25MB/

sub-MPI2_T2starw.nii.gz:  21%|██▉           | 271k/1.27M [00:00<00:00, 2.76MB/s]



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



                                                                                
sub-MPI2_UNIT1.nii.gz:   2%|▎               | 494k/25.5M [00:00<00:06, 3.90MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:   5%| | 985k/18.2M [00:00<00:03, 5.51MB/

sub-MPI2_T2starw.nii.gz:  78%|██████████▏  | 1.00M/1.27M [00:00<00:00, 5.63MB/s]

                                                                                
sub-MPI2_UNIT1.nii.gz:   5%|▋              | 1.23M/25.5M [00:00<00:04, 5.96MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 2.09M/18.2M [00:00<00:02, 8.36MB
sub-MPI2_UNIT1.nii.gz:  15%|██▏            | 3.71M/25.5M [00:00<00:01, 14.5MB/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:  23%|▏| 4.26M/18.2M [00:00<00:01, 13.3MB

sub-MPI2_rec-uncombined10_T2starw.nii.gz:   0%|     | 0.00/0.98M [00:00<?, ?B/s]
sub-MPI2_UNIT1.nii.gz:  21%|███▏           | 5.39M/25.5M [00:00<00:01, 15.6MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/19.4M [00:00<?, ?B/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.52M/18.2M [00:00<00:00, 16.9MB

sub-MPI2_rec-uncombined10_T2starw.nii.gz:  49%|▍| 493k/0.98M [00:00<00:00, 5.04M
                                                                                


sub-MPI2_UNIT1.nii.gz:  29%|████▎          | 7.29M/25.5M [00:00<00:01, 17.2MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 152k/19.4M [00:00<00:13, 1.53MB/
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 8.13M/18.2M [00:00<00:00, 16.1MB
sub-MPI2_UNIT1.nii.gz:  35%|█████▎         | 8.96M/25.5M [00:00<00:01, 16.4MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.28M/19.4M [00:00<00:02, 7.55MB
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 9.70M/18.2M [00:00<00:00, 16.2MB
sub-MPI2_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/971k [00:00<?, ?B/s]


sub-MPI2_UNIT1.nii.gz:  43%|██████▍        | 10.9M/25.5M [00:00<00:00, 17.5MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.80M/19.4M [00:00<00:01, 11.3MB




sub-MPI2_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  63%|▋| 11.5M/18.2M [00:00<00:00, 16.9MB
sub-MPI2_rec-uncombined11_T2starw.nii.gz:  40%|▍| 391k/971k [00:00<00:00, 3.98MB


sub-MPI2_UNIT1.nii.gz:  49%|███████▍       | 12.6M/25.5M [00:00<00:00, 17.1MB/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.31M/19.4M [00:00<00:01, 13.1MB




sub-MPI2_rec-uncombined13_T2starw.nii.gz:  40%|▍| 390k/968k [00:00<00:00, 3.96MB

                                                                                
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  72%|▋| 13.1M/18.2M [00:00<00:00, 14.5MB
sub-MPI2_rec-uncombined13_T2starw.nii.gz:  98%|▉| 952k/968k [00:00<00:00, 5.01MB




                                                                                



sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.58M/19.4M [00:00<00:01, 11.2MB
sub-MPI2_UNIT1.nii.gz:  56%|████████▍      | 14.2M/25.5M [00:01<00:00, 14.0MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.5M/18.2M [00:01<00:00, 14.2MB
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 7.47M/19.4M [00:00<00:00, 13.8MB
sub-MPI2_UNIT1.nii.gz:  64%|█████████▌     | 16.2M/25.5M [00:01<00:00, 15.7MB/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:  88%|▉| 16.1M/18.2M [00:01<00:00, 14.4MB



sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 8.89M/19.4M [00:00<00:00, 14.1MB
sub-MPI2_rec-uncombined12_T2starw.nii.gz:   0%|     | 0.00/0.98M [00:00<?, ?B/s]


sub-MPI2_UNIT1.nii.gz:  70%|██████████▌    | 17.8M/25.5M [00:01<00:00, 15.3MB/s]
sub-MPI2_inv-1_part-mag_MP2RAGE.nii.gz:  99%|▉| 18.0M/18.2M [00:01<00:00, 15.9MB
                                                                                

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



sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 10.3M/19.4M [00:00<00:00, 14.0MB
sub-MPI2_rec-uncombined12_T2starw.nii.gz:  17%|▏| 170k/0.98M [00:00<00:00, 1.73M
                                                                                
sub-MPI2_UNIT1.nii.gz:  76%|███████████▍   | 19.4M/25.5M [00:01<00:00, 13.6MB/s]

sub-MPI2_rec-uncombined12_T2starw.nii.gz:  85%|▊| 850k/0.98M [00:00<00:00, 4.79M
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 11.7M/19.4M [00:00<00:00, 13.7MB

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

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


                                                                                
sub-MPI2_UNIT1.nii.gz:  81%|████████████▏  | 20.7M/25.5M [00:01<00:00, 12.3MB/s]



sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  67%|▋| 13.0M/19.4M [00:01<00:00, 12.3MB
sub-MPI2_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_UNIT1.nii.gz:  92%|█████████████▊ | 23.4M/25.5M [00:01<00:00, 15.0MB/s]



sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 15.1M/19.4M [00:01<00:00, 14.6MB
sub-MPI2_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/984k [00:00<?, ?B/s]


                                                                                

sub-MPI2_rec-uncombined14_T2starw.nii.gz:   0%|     | 0.00/1.05M [00:00<?, ?B/s]
sub-MPI2_inv-2_part-mag_MP2RAGE.nii.gz:  89%|▉| 17.3M/19.4M [00:01<00:00, 16.5MB
                                                                                
sub-MPI2_rec-uncombined15_T2starw.nii.gz:  31%|▎| 305k/984k [00:00<00:00, 2.62MB

sub-MPI2_rec-uncombined14_T2starw.nii.gz:  25%|▏| 266k/1.05M [00:00<00:00, 2.34M
sub-MPI2_rec-uncombined16_T2starw.nii.gz:   0%|     | 0.00/1.06M [00:00<?, ?B/s]



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



                                                                                
                                                                                
sub-MPI2_rec-uncombined14_T2starw.nii.gz:  91%|▉| 980k/1.05M [00:00<00:00, 4.69M


sub-MPI2_rec-uncombined16_T2starw.nii.gz:  19%|▏| 203k/1.06M [00:00<00:00, 2.01M

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

sub-MPI2_rec-uncombined18_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined19_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]


                                                                                


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


                                                                                
sub-MPI2_rec-uncombined17_T2starw.nii.gz:  16%|▏| 169k/1.00M [00:00<00:00, 1.37M

sub-MPI2_rec-uncombined18_T2starw.nii.gz:  14%|▏| 152k/1.04M [00:00<00:00, 1.38M


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


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


                                                                                
                                                                                
sub-MPI2_rec-uncombined18_T2starw.nii.gz:  94%|▉| 0.98M/1.04M [00:00<00:00, 4.94

                                                                                
sub-MPI2_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/0.99M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined1_T2starw.nii.gz:  99%|▉| 0.98M/0.99M [00:00<00:00, 10.3M
                                                                                
sub-MPI2_rec-uncombined19_T2starw.nii.gz:  40%|▍| 425k/1.03M [00:00<00:00, 4.10M
sub-MPI2_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]


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

                                                                                
sub-MPI2_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/1.03M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined20_T2starw.nii.gz:  21%|▏| 220k/1.04M [00:00<00:00, 2.24M


sub-MPI2_rec-uncombined22_T2starw.nii.gz:  27%|▎| 289k/1.06M [00:00<00:00, 2.95M



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

sub-MPI2_rec-uncombined21_T2starw.nii.gz:  45%|▍| 475k/1.03M [00:00<00:00, 4.43M



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



                                                                                
sub-MPI2_rec-uncombined20_T2starw.nii.gz:  61%|▌| 646k/1.04M [00:00<00:00, 3.41M


sub-MPI2_rec-uncombined22_T2starw.nii.gz:  65%|▋| 697k/1.06M [00:00<00:00, 3.67M
                                                                                
                                                                                


sub-MPI2_rec-uncombined21_T2starw.nii.gz:  97%|▉| 1.00M/1.03M [00:00<00:00, 4.87
sub-MPI2_rec-uncombined23_T2starw.json:   0%|       | 0.00/2.41k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MPI2_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.04M [00:00<?, ?B/s]
sub-MPI2_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]

                                                                                

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

                                                                                
sub-MPI2_rec-uncombined23_T2starw.nii.gz:  24%|▏| 256k/1.04M [00:00<00:00, 2.17M

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

                                                                                
sub-MPI2_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/0.99M [00:00<?, ?B/s]
                                                                                
                                                                                
sub-MPI2_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/959k [00:00<?, ?B/s]
sub-MPI2_rec-uncombined3_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-uncombined2_T2starw.nii.gz:  78%|▊| 747k/959k [00:00<00:00, 7.44MB/
                                                                                
sub-MPI2_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/971k [00:00<?, ?B/s]

sub-MPI2_rec-uncombined3_T2starw.nii.gz:  42%|▍| 425k/999k [00:00<00:00, 4.33MB/
sub-MPI2_rec-uncombined6_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-uncombined4_T2starw.nii.gz:  40%|▍| 391k/971k [00:00<00:00, 3.25MB/

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


sub-MPI2_rec-uncombined5_T2starw.nii.gz:  33%|▎| 324k/981k [00:00<00:00, 3.32MB/
                                                                                
                                                                                
sub-MPI2_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/970k [00:00<?, ?B/s]

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

                                                                                
sub-MPI2_rec-uncombined6_T2starw.nii.gz:  38%|▍| 373k/970k [00:00<00:00, 3.66MB/

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


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

sub-MPI2_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.41k [00:00<?, ?B/s]
                                                                                
sub-MPI2_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.00M [00:00<?, ?B/s]

sub-MPI2_rec-uncombined8_T2starw.nii.gz:  24%|▏| 238k/0.98M [00:00<00:00, 2.44MB


sub-MPI2_rec-uncombined9_T2starw.nii.gz:  43%|▍| 425k/994k [00:00<00:00, 4.34MB/
                                                                                
sub-MPI2_acq-anat_TB1TFL.json:   0%|                | 0.00/2.63k [00:00<?, ?B/s]


                                                                                
sub-MPI2_rec-uncombined8_T2starw.nii.gz:  95%|▉| 953k/0.98M [00:00<00:00, 4.70MB
sub-MPI2_rec-uncombined7_T2starw.nii.gz:  35%|▎| 356k/1.00M [00:00<00:00, 2.82MB

                                                                                

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

sub-MPI2_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-anat_TB1TFL.nii.gz:  72%|█████  | 543k/757k [00:00<00:00, 5.55MB/s]
                                                                                
sub-MPI2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.06k [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-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [00:00<?, ?B/s]


                                                                                
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:  15%|▏| 595k/3.94M [00:00<00:00, 4.77MB/

sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  13%|▏| 476k/3.64M [00:00<00:00, 4.8
sub-MPI2_acq-coilQaSagLarge_SNR.nii.gz:  52%|▌| 2.07M/3.94M [00:00<00:00, 10.2MB


sub-MPI2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/88.0k [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/15.5M [00:00<?, ?B/s]


                                                                                


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


                                                                                
sub-MPI2_acq-coilQaSagSmall_GFactor.nii.gz:  57%|▌| 2.06M/3.64M [00:00<00:00, 6.
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   2%| | 357k/15.5M [00:00<00:04, 3.64MB/s

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

                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.41M/15.5M [00:00<00:01, 7.81MB/

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


sub-MPI2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/88.3k [00:00<?, ?B/s]
                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.28M/15.5M [00:00<00:00, 17.2MB/

sub-MPI2_acq-famp_TB1TFL.nii.gz:  33%|██▎    | 305k/937k [00:00<00:00, 2.88MB/s]


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


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

                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 5.89M/15.5M [00:00<00:00, 16.1MB/
sub-MPI3_T2starw.nii.gz:  23%|███▏          | 305k/1.30M [00:00<00:00, 2.76MB/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:  63%|▋| 9.79M/15.5M [00:00<00:00, 23.8MB/



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




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



                                                                                
sub-MPI3_T2starw.nii.gz:  86%|███████████▏ | 1.13M/1.30M [00:00<00:00, 6.06MB/s]

                                                                                




                                                                                
                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  78%|▊| 12.1M/15.5M [00:00<00:00, 18.9MB/
sub-MPI3_T2starw.json:   0%|                        | 0.00/2.38k [00:00<?, ?B/s]

                                                                                

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

                                                                                
sub-MPI2_acq-coilQaTra_GFactor.nii.gz:  93%|▉| 14.3M/15.5M [00:00<00:00, 19.7MB/

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

                                                                                
                                                                                
sub-MPI3_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.06k [00:00<?, ?B/s]
                                                                                
sub-MPI3_UNIT1.nii.gz:   0%|                        | 0.00/25.5M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined10_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]

                                                                                
sub-MPI3_UNIT1.nii.gz:   2%|▎               | 424k/25.5M [00:00<00:06, 4.13MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/18.4M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined11_T2starw.nii.gz:   0%|      | 0.00/984k [00:00<?, ?B/s]



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



                                                                                
sub-MPI3_UNIT1.nii.gz:  16%|██▎            | 3.98M/25.5M [00:00<00:01, 20.0MB/s]

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 408k/18.4M [00:00<00:04, 4.15MB/



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/20.1M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined11_T2starw.nii.gz:  43%|▍| 424k/984k [00:00<00:00, 4.28MB
sub-MPI3_UNIT1.nii.gz:  23%|███▍           | 5.92M/25.5M [00:00<00:01, 20.1MB/s]


                                                                                

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.44M/18.4M [00:00<00:02, 8.08MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 322k/20.1M [00:00<00:07, 2.62MB/
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 2.22M/18.4M [00:00<00:02, 8.09MB
sub-MPI3_UNIT1.nii.gz:  31%|████▌          | 7.78M/25.5M [00:00<00:01, 17.5MB/s]
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.41M/20.1M [00:00<00:02, 7.32MB


sub-MPI3_rec-uncombined10_T2starw.nii.gz:   0%|      | 0.00/999k [00:00<?, ?B/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.52M/18.4M [00:00<00:01, 10.3MB
sub-MPI3_UNIT1.nii.gz:  38%|█████▋         | 9.60M/25.5M [00:00<00:00, 18.0MB/s]
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.65M/20.1M [00:00<00:01, 9.73MB


sub-MPI3_rec-uncombined10_T2starw.nii.gz:  44%|▍| 441k/999k [00:00<00:00, 4.49MB
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 5.19M/18.4M [00:00<00:01, 12.9MB
sub-MPI3_UNIT1.nii.gz:  45%|██████▋        | 11.3M/25.5M [00:00<00:00, 17.1MB/s]



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  21%|▏| 4.27M/20.1M [00:00<00:01, 12.4MB


                                                                                


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


                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 6.43M/18.4M [00:00<00:01, 11.6MB



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  27%|▎| 5.49M/20.1M [00:00<00:01, 11.5MB
sub-MPI3_UNIT1.nii.gz:  51%|███████▋       | 13.0M/25.5M [00:00<00:00, 14.9MB/s]
sub-MPI3_rec-uncombined12_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]




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


                                                                                




                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 8.12M/18.4M [00:00<00:00, 12.7MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  33%|▎| 6.68M/20.1M [00:00<00:01, 10.9MB
sub-MPI3_UNIT1.nii.gz:  57%|████████▌      | 14.4M/25.5M [00:00<00:00, 13.4MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  51%|▌| 9.37M/18.4M [00:00<00:00, 12.8MB



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  43%|▍| 8.55M/20.1M [00:00<00:00, 13.5MB
sub-MPI3_UNIT1.nii.gz:  64%|█████████▌     | 16.3M/25.5M [00:01<00:00, 15.1MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  62%|▌| 11.4M/18.4M [00:00<00:00, 15.1MB



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.5M/20.1M [00:00<00:00, 15.6MB
sub-MPI3_rec-uncombined13_T2starw.nii.gz:   0%|      | 0.00/968k [00:00<?, ?B/s]




sub-MPI3_rec-uncombined12_T2starw.nii.gz:   0%|      | 0.00/994k [00:00<?, ?B/s]
sub-MPI3_UNIT1.nii.gz:  70%|██████████▌    | 17.9M/25.5M [00:01<00:00, 15.4MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 13.0M/18.4M [00:01<00:00, 15.8MB


sub-MPI3_rec-uncombined13_T2starw.nii.gz:  47%|▍| 459k/968k [00:00<00:00, 4.69MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  60%|▌| 12.1M/20.1M [00:00<00:00, 15.4MB




sub-MPI3_rec-uncombined12_T2starw.nii.gz:  35%|▎| 352k/994k [00:00<00:00, 3.58MB
sub-MPI3_UNIT1.nii.gz:  76%|███████████▍   | 19.4M/25.5M [00:01<00:00, 15.2MB/s]
                                                                                
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  79%|▊| 14.6M/18.4M [00:01<00:00, 13.9MB




sub-MPI3_rec-uncombined12_T2starw.nii.gz:  90%|▉| 895k/994k [00:00<00:00, 4.73MB




                                                                                
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  68%|▋| 13.6M/20.1M [00:01<00:00, 12.9MB
sub-MPI3_UNIT1.nii.gz:  82%|████████████▎  | 20.9M/25.5M [00:01<00:00, 13.3MB/s]
sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  86%|▊| 15.9M/18.4M [00:01<00:00, 13.8MB
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 15.5M/20.1M [00:01<00:00, 14.8MB
sub-MPI3_UNIT1.nii.gz:  90%|█████████████▍ | 22.9M/25.5M [00:01<00:00, 15.2MB/s]
sub-MPI3_rec-uncombined15_T2starw.nii.gz:   0%|      | 0.00/986k [00:00<?, ?B/s]

sub-MPI3_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 18.0M/18.4M [00:01<00:00, 15.9MB

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



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  85%|▊| 17.0M/20.1M [00:01<00:00, 14.8MB
sub-MPI3_UNIT1.nii.gz:  96%|██████████████▍| 24.4M/25.5M [00:01<00:00, 15.1MB/s]


sub-MPI3_rec-uncombined15_T2starw.nii.gz:  53%|▌| 527k/986k [00:00<00:00, 5.37MB
                                                                                



sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  92%|▉| 18.5M/20.1M [00:01<00:00, 14.3MB

sub-MPI3_rec-uncombined14_T2starw.nii.gz:  47%|▍| 497k/1.03M [00:00<00:00, 4.17M
                                                                                
sub-MPI3_rec-uncombined16_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-MPI3_inv-2_part-mag_MP2RAGE.nii.gz:  99%|▉| 19.9M/20.1M [00:01<00:00, 13.3MB



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

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

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

                                                                                
sub-MPI3_rec-uncombined16_T2starw.nii.gz:  36%|▎| 373k/1.02M [00:00<00:00, 3.81M

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

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


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



                                                                                
sub-MPI3_rec-uncombined18_T2starw.nii.gz:   6%| | 67.6k/1.07M [00:00<00:01, 626k

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

                                                                                
sub-MPI3_rec-uncombined20_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined17_T2starw.nii.gz:  45%|▍| 476k/1.04M [00:00<00:00, 4.87M
                                                                                
sub-MPI3_rec-uncombined20_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]
                                                                                


sub-MPI3_rec-uncombined20_T2starw.nii.gz:  51%|▌| 561k/1.07M [00:00<00:00, 4.78M
                                                                                
sub-MPI3_rec-uncombined19_T2starw.nii.gz:   0%|     | 0.00/1.08M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined1_T2starw.nii.gz:   0%|      | 0.00/1.02M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined22_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined19_T2starw.nii.gz:  68%|▋| 747k/1.08M [00:00<00:00, 6.29M


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



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


                                                                                

sub-MPI3_rec-uncombined1_T2starw.nii.gz:  23%|▏| 238k/1.02M [00:00<00:00, 1.99MB
                                                                                
sub-MPI3_rec-uncombined21_T2starw.nii.gz:  27%|▎| 288k/1.05M [00:00<00:00, 2.89M

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

sub-MPI3_rec-uncombined22_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined23_T2starw.nii.gz:   0%|     | 0.00/1.07M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined24_T2starw.json:   0%|       | 0.00/2.40k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined22_T2starw.nii.gz:  35%|▎| 391k/1.07M [00:00<00:00, 3.99M
                                                                                


sub-MPI3_rec-uncombined23_T2starw.nii.gz:  12%| | 135k/1.07M [00:00<00:00, 1.25M
sub-MPI3_rec-uncombined24_T2starw.nii.gz:   0%|     | 0.00/1.01M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/992k [00:00<?, ?B/s]

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

                                                                                
sub-MPI3_rec-uncombined24_T2starw.nii.gz:  39%|▍| 403k/1.01M [00:00<00:00, 3.45M

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

                                                                                


sub-MPI3_rec-uncombined2_T2starw.nii.gz:  16%|▏| 154k/992k [00:00<00:00, 1.27MB/
                                                                                
                                                                                
sub-MPI3_rec-uncombined5_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/984k [00:00<?, ?B/s]

sub-MPI3_rec-uncombined3_T2starw.nii.gz:   0%|      | 0.00/1.00M [00:00<?, ?B/s]
sub-MPI3_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined4_T2starw.nii.gz:  64%|▋| 629k/984k [00:00<00:00, 6.23MB/

sub-MPI3_rec-uncombined3_T2starw.nii.gz:  25%|▏| 255k/1.00M [00:00<00:00, 2.60MB
                                                                                
sub-MPI3_rec-uncombined7_T2starw.nii.gz:   0%|      | 0.00/1.03M [00:00<?, ?B/s]


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


                                                                                
                                                                                
sub-MPI3_rec-uncombined7_T2starw.nii.gz:  27%|▎| 289k/1.03M [00:00<00:00, 2.95MB
sub-MPI3_rec-uncombined5_T2starw.nii.gz:   0%|      | 0.00/1.01M [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.39k [00:00<?, ?B/s]
                                                                                
sub-MPI3_rec-uncombined5_T2starw.nii.gz:  46%|▍| 475k/1.01M [00:00<00:00, 4.86MB

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

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


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


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


                                                                                
sub-MPI3_rec-uncombined6_T2starw.nii.gz:  38%|▍| 373k/992k [00:00<00:00, 3.81MB/

sub-MPI3_rec-uncombined9_T2starw.nii.gz:  49%|▍| 493k/0.99M [00:00<00:00, 5.02MB
                                                                                

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

                                                                                
sub-MPI3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/843k [00:00<?, ?B/s]
sub-MPI3_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.16k [00:00<?, ?B/s]


                                                                                
sub-MPI3_rec-uncombined8_T2starw.nii.gz:  30%|▎| 305k/0.99M [00:00<00:00, 2.48MB
sub-MPI3_acq-coilQaSagLarge_SNR.json:   0%|         | 0.00/2.15k [00:00<?, ?B/s]


                                                                                

sub-MPI3_acq-anat_TB1TFL.nii.gz:  36%|██▌    | 305k/843k [00:00<00:00, 2.68MB/s]
                                                                                
                                                                                
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|   | 0.00/3.58M [00:00<?, ?B/s]
sub-MPI3_acq-famp-1.5_TB1DREAM.json:   0%|          | 0.00/2.07k [00:00<?, ?B/s]

                                                                                
sub-MPI3_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.07k [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:   8%| | 305k/3.58M [00:00<00:01, 2.6

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


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


                                                                                
sub-MPI3_acq-coilQaSagSmall_GFactor.nii.gz:  46%|▍| 1.64M/3.58M [00:00<00:00, 8.
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  11%| | 459k/3.96M [00:00<00:00, 4.69MB/
                                                                                
sub-MPI3_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/88.9k [00:00<?, ?B/s]
sub-MPI3_acq-coilQaSagLarge_SNR.nii.gz:  51%|▌| 2.01M/3.96M [00:00<00:00, 11.6MB
                                                                                
sub-MPI3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/88.3k [00:00<?, ?B/s]


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

                                                                                

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

                                                                                
                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:   1%| | 101k/15.6M [00:00<00:16, 980kB/s]
sub-MPI3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 2.27M/15.6M [00:00<00:01, 13.5MB/
sub-MPI3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.08k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/82.6k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  30%|▎| 4.69M/15.6M [00:00<00:00, 18.1MB/
sub-MPI3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/955k [00:00<?, ?B/s]

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

                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  43%|▍| 6.69M/15.6M [00:00<00:00, 19.2MB/
sub-MPI3_acq-famp_TB1TFL.nii.gz:  73%|█████  | 696k/955k [00:00<00:00, 7.12MB/s]
                                                                                
sub-MPI3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.07k [00:00<?, ?B/s]
                                                                                
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  55%|▌| 8.53M/15.6M [00:00<00:00, 18.8MB/
sub-MPI3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/91.1k [00:00<?, ?B/s]
sub-MPI3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/88.6k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_T2starw.json:   0%|                       | 0.00/1.85k [00:00<?, ?B/s]
                                                                                



sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  71%|▋| 11.1M/15.6M [00:00<00:00, 20.3MB/

                                                                                
sub-MSSM1_T2starw.nii.gz:   0%|                     | 0.00/1.78M [00:00<?, ?B/s]
sub-MPI3_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 14.0M/15.6M [00:00<00:00, 23.7MB/
sub-MSSM1_T2starw.nii.gz:  41%|█████▎       | 749k/1.78M [00:00<00:00, 7.66MB/s]

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

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


                                                                                

                                                                                
sub-MSSM1_T2starw.nii.gz:  83%|█████████▉  | 1.48M/1.78M [00:00<00:00, 6.95MB/s]
                                                                                

sub-MSSM1_UNIT1.nii.gz:   0%|                       | 0.00/26.6M [00:00<?, ?B/s]
sub-MSSM1_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_UNIT1.nii.gz:   2%|▎              | 628k/26.6M [00:00<00:04, 5.83MB/s]
sub-MSSM1_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/20.7M [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:   7%|▉             | 1.85M/26.6M [00:00<00:02, 9.87MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.7M [00:00<?, ?B/s]



sub-MSSM1_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]



                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 357k/20.7M [00:00<00:05, 3.65MB
sub-MSSM1_UNIT1.nii.gz:  16%|██▎           | 4.31M/26.6M [00:00<00:01, 16.9MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 561k/18.7M [00:00<00:03, 5.73MB



sub-MSSM1_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/378k [00:00<?, ?B/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.31M/20.7M [00:00<00:02, 7.44M
sub-MSSM1_UNIT1.nii.gz:  22%|███▏          | 5.95M/26.6M [00:00<00:01, 16.8MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.49M/18.7M [00:00<00:02, 8.13M



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

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 2.08M/20.7M [00:00<00:02, 7.72M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  12%| | 2.32M/18.7M [00:00<00:02, 8.38M
sub-MSSM1_UNIT1.nii.gz:  28%|███▉          | 7.57M/26.6M [00:00<00:01, 14.9MB/s]
sub-MSSM1_rec-uncombined00003_T2starw.nii.gz: 100%|█| 756k/756k [00:00<00:00, 7.



                                                                                

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  15%|▏| 3.16M/20.7M [00:00<00:02, 8.98M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.51M/18.7M [00:00<00:01, 9.97M



sub-MSSM1_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]



                                                                                
sub-MSSM1_UNIT1.nii.gz:  34%|████▊         | 9.04M/26.6M [00:00<00:01, 13.4MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.60M/20.7M [00:00<00:01, 11.1M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 4.87M/18.7M [00:00<00:01, 11.5M
sub-MSSM1_UNIT1.nii.gz:  41%|█████▊        | 11.0M/26.6M [00:00<00:01, 15.4MB/s]



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

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 6.57M/20.7M [00:00<00:01, 14.3M
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.72M/18.7M [00:00<00:00, 14.1M




sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/768k [00:00<?, ?B/s]
sub-MSSM1_UNIT1.nii.gz:  47%|██████▋       | 12.6M/26.6M [00:00<00:00, 15.7MB/s]



                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 7.94M/20.7M [00:00<00:01, 13.3M




sub-MSSM1_rec-uncombined00007_T2starw.nii.gz:  31%|▎| 238k/768k [00:00<00:00, 2.


sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  43%|▍| 8.07M/18.7M [00:00<00:00, 13.3M
                                                                                
sub-MSSM1_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]



                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  45%|▍| 9.24M/20.7M [00:00<00:01, 11.7M
sub-MSSM1_UNIT1.nii.gz:  53%|███████▍      | 14.1M/26.6M [00:01<00:01, 12.5MB/s]


sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▍| 9.36M/18.7M [00:00<00:00, 11.9M
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  54%|▌| 11.2M/20.7M [00:00<00:00, 14.2M
sub-MSSM1_UNIT1.nii.gz:  60%|████████▍     | 16.1M/26.6M [00:01<00:00, 14.4MB/s]


sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  60%|▌| 11.2M/18.7M [00:00<00:00, 14.0M



sub-MSSM1_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]



                                                                                



sub-MSSM1_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 12.6M/20.7M [00:01<00:00, 13.1M
sub-MSSM1_UNIT1.nii.gz:  66%|█████████▎    | 17.6M/26.6M [00:01<00:00, 13.2MB/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  67%|▋| 12.6M/18.7M [00:01<00:00, 12.9M
sub-MSSM1_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]



                                                                                
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 14.2M/18.7M [00:01<00:00, 13.4M
sub-MSSM1_UNIT1.nii.gz:  72%|██████████    | 19.2M/26.6M [00:01<00:00, 13.6MB/s]

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 14.5M/20.7M [00:01<00:00, 13.8M



sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  85%|▊| 15.9M/18.7M [00:01<00:00, 14.7M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 16.2M/20.7M [00:01<00:00, 15.0M
sub-MSSM1_UNIT1.nii.gz:  79%|██████████▉   | 20.9M/26.6M [00:01<00:00, 14.7MB/s]



sub-MSSM1_rec-uncombined00005_T2starw.nii.gz:  65%|▋| 493k/759k [00:00<00:00, 5.
                                                                                



sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/770k [00:00<?, ?B/s]
sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 17.3M/18.7M [00:01<00:00, 14.1M

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  86%|▊| 17.7M/20.7M [00:01<00:00, 14.4M
sub-MSSM1_UNIT1.nii.gz:  84%|███████████▊  | 22.4M/26.6M [00:01<00:00, 14.2MB/s]
sub-MSSM1_rec-uncombined00009_T2starw.nii.gz:  79%|▊| 611k/770k [00:00<00:00, 6.
                                                                                


sub-MSSM1_inv-1_part-mag_MP2RAGE.nii.gz: 100%|█| 18.7M/18.7M [00:01<00:00, 13.7M


                                                                                

sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz:  92%|▉| 19.1M/20.7M [00:01<00:00, 13.9M
sub-MSSM1_UNIT1.nii.gz:  89%|████████████▌ | 23.8M/26.6M [00:01<00:00, 12.9MB/s]


sub-MSSM1_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/367k [00:00<?, ?B/s]
sub-MSSM1_inv-2_part-mag_MP2RAGE.nii.gz: 100%|▉| 20.7M/20.7M [00:01<00:00, 14.6M

                                                                                
sub-MSSM1_UNIT1.nii.gz:  95%|█████████████▎| 25.4M/26.6M [00:01<00:00, 13.8MB/s]


sub-MSSM1_rec-uncombined00013_T2starw.nii.gz:  89%|▉| 326k/367k [00:00<00:00, 3.


                                                                                

sub-MSSM1_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/760k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00011_T2starw.nii.gz:  53%|▌| 407k/760k [00:00<00:00, 3.

                                                                                
sub-MSSM1_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00014_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_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/743k [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:  23%|▏| 169k/743k [00:00<00:00, 1.
sub-MSSM1_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00019_T2starw.nii.gz:  87%|▊| 663k/759k [00:00<00:00, 6.
                                                                                
sub-MSSM1_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/746k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                

sub-MSSM1_rec-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_rec-uncombined00017_T2starw.nii.gz:  48%|▍| 356k/746k [00:00<00:00, 3.


sub-MSSM1_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MSSM1_rec-uncombined00021_T2starw.nii.gz:  33%|▎| 254k/759k [00:00<00:00, 2.
sub-MSSM1_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/356k [00:00<?, ?B/s]


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

                                                                                
                                                                                
sub-MSSM1_rec-uncombined00023_T2starw.nii.gz:  64%|▋| 476k/737k [00:00<00:00, 4.


                                                                                
sub-MSSM1_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00027_T2starw.nii.gz:   0%|  | 0.00/722k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/360k [00:00<?, ?B/s]


sub-MSSM1_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/722k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00027_T2starw.nii.gz:  94%|▉| 680k/722k [00:00<00:00, 6.
                                                                                
sub-MSSM1_rec-uncombined00026_T2starw.nii.gz:  61%|▌| 220k/360k [00:00<00:00, 2.

                                                                                
sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/736k [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:  42%|▍| 305k/722k [00:00<00:00, 2.
                                                                                
sub-MSSM1_rec-uncombined00031_T2starw.nii.gz:  46%|▍| 339k/736k [00:00<00:00, 3.
sub-MSSM1_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.32k [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:   0%|  | 0.00/736k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/706k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00033_T2starw.nii.gz:  39%|▍| 288k/736k [00:00<00:00, 2.



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


                                                                                

sub-MSSM1_rec-uncombined00035_T2starw.nii.gz:  26%|▎| 186k/706k [00:00<00:00, 1.


sub-MSSM1_rec-uncombined00038_T2starw.nii.gz:   0%|  | 0.00/351k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00037_T2starw.nii.gz:  54%|▌| 186k/346k [00:00<00:00, 1.

                                                                                


sub-MSSM1_rec-uncombined00038_T2starw.nii.gz:  53%|▌| 187k/351k [00:00<00:00, 1.
                                                                                


                                                                                
sub-MSSM1_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                

sub-MSSM1_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00043_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-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/701k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00039_T2starw.nii.gz:  44%|▍| 306k/701k [00:00<00:00, 3.

                                                                                
sub-MSSM1_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]

                                                                                
sub-MSSM1_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/713k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00045_T2starw.nii.gz:  55%|▌| 391k/712k [00:00<00:00, 3.
                                                                                
sub-MSSM1_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00043_T2starw.nii.gz:  45%|▍| 322k/713k [00:00<00:00, 2.

                                                                                
sub-MSSM1_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]

sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/678k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.28k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00047_T2starw.nii.gz:  80%|▊| 543k/678k [00:00<00:00, 5.

                                                                                
sub-MSSM1_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/334k [00:00<?, ?B/s]

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

sub-MSSM1_rec-uncombined00053_T2starw.nii.gz:   0%|  | 0.00/680k [00:00<?, ?B/s]
sub-MSSM1_rec-uncombined00049_T2starw.nii.gz:  91%|▉| 305k/334k [00:00<00:00, 2.
                                                                                
sub-MSSM1_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.31k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/677k [00:00<?, ?B/s]

                                                                                
                                                                                
sub-MSSM1_rec-uncombined00055_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-uncombined00057_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-uncombined00059_T2starw.json:   0%|   | 0.00/1.32k [00:00<?, ?B/s]
                                                                                


sub-MSSM1_rec-uncombined00057_T2starw.nii.gz:  44%|▍| 305k/685k [00:00<00:00, 2.
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_rec-uncombined00059_T2starw.nii.gz:  28%|▎| 186k/651k [00:00<00:00, 1.
                                                                                

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-coilQaTra_GFactor.nii.gz:   4%| | 628k/16.1M [00:00<00:02, 5.74MB/
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.34M [00:00<?, ?B/s]
sub-MSSM1_acq-famp_TB1TFL.json:   0%|               | 0.00/1.76k [00:00<?, ?B/s]


                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  15%|▏| 2.46M/16.1M [00:00<00:01, 13.4MB
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 374k/4.34M [00:00<00:01, 3.82MB
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-coilQaSagLarge_SNR.nii.gz:  34%|▎| 1.48M/4.34M [00:00<00:00, 7.58M

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  30%|▎| 4.76M/16.1M [00:00<00:00, 16.2MB



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


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 277k/3.61M [00:00<00:01, 2.
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  68%|▋| 2.97M/4.34M [00:00<00:00, 11.0M

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 6.34M/16.1M [00:00<00:00, 16.3MB



sub-MSSM1_acq-famp_TB1TFL.nii.gz:  49%|██▉   | 409k/830k [00:00<00:00, 4.18MB/s]


sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.22M/3.61M [00:00<00:00, 6
sub-MSSM1_acq-famp_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]




                                                                                



                                                                                
sub-MSSM1_acq-coilQaSagLarge_SNR.nii.gz:  93%|▉| 4.03M/4.34M [00:00<00:00, 10.0M
                                                                                



sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  52%|▌| 1.88M/3.61M [00:00<00:00, 5

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  49%|▍| 7.90M/16.1M [00:00<00:00, 12.7MB
sub-MSSM1_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.36k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_acq-coilQaSagSmall_GFactor.nii.gz:  92%|▉| 3.33M/3.61M [00:00<00:00, 8

sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  60%|▌| 9.69M/16.1M [00:00<00:00, 14.3MB
                                                                                
sub-MSSM1_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/93.3k [00:00<?, ?B/s]
                                                                                
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 12.3M/16.1M [00:00<00:00, 17.2MB
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-MSSM2_UNIT1.nii.gz:   0%|                       | 0.00/26.6M [00:00<?, ?B/s]
sub-MSSM1_acq-coilQaTra_GFactor.nii.gz:  91%|▉| 14.7M/16.1M [00:00<00:00, 19.4MB
sub-MSSM2_T2starw.nii.gz:  22%|██▉          | 407k/1.78M [00:00<00:00, 4.16MB/s]



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



                                                                                
sub-MSSM2_UNIT1.nii.gz:   2%|▏              | 425k/26.6M [00:00<00:06, 4.35MB/s]
sub-MSSM2_inv-1_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_T2starw.nii.gz:  66%|███████▉    | 1.18M/1.78M [00:00<00:00, 5.61MB/s]

                                                                                
sub-MSSM2_UNIT1.nii.gz:   3%|▌              | 936k/26.6M [00:00<00:05, 4.86MB/s]
                                                                                
sub-MSSM2_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]
                                                                                



sub-MSSM2_UNIT1.nii.gz:   8%|█▏            | 2.21M/26.6M [00:00<00:03, 8.49MB/s]
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-MSSM2_UNIT1.nii.gz:  17%|██▍           | 4.62M/26.6M [00:00<00:01, 15.0MB/s]
sub-MSSM2_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/17.4M [00:00<?, ?B/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   2%| | 322k/19.0M [00:00<00:07, 2.79MB
sub-MSSM2_UNIT1.nii.gz:  24%|███▎          | 6.42M/26.6M [00:00<00:01, 16.3MB/s]



sub-MSSM2_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.19M/19.0M [00:00<00:02, 6.31M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 385k/17.4M [00:00<00:04, 3.91MB
sub-MSSM2_UNIT1.nii.gz:  30%|████▏         | 7.98M/26.6M [00:00<00:01, 15.1MB/s]



sub-MSSM2_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.21M/19.0M [00:00<00:02, 8.19M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:   8%| | 1.39M/17.4M [00:00<00:02, 7.82M
sub-MSSM2_UNIT1.nii.gz:  36%|█████         | 9.69M/26.6M [00:00<00:01, 15.9MB/s]



sub-MSSM2_rec-uncombined00003_T2starw.nii.gz:  67%|▋| 476k/712k [00:00<00:00, 4.
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.58M/19.0M [00:00<00:01, 10.6M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.47M/17.4M [00:00<00:01, 9.39M




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



                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▏| 4.72M/19.0M [00:00<00:01, 11.0M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 3.62M/17.4M [00:00<00:01, 10.4M


sub-MSSM2_UNIT1.nii.gz:  42%|█████▉        | 11.2M/26.6M [00:00<00:01, 14.8MB/s]




sub-MSSM2_rec-uncombined00001_T2starw.nii.gz:  88%|▉| 318k/361k [00:00<00:00, 3.




                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  32%|▎| 5.98M/19.0M [00:00<00:01, 11.8M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 4.90M/17.4M [00:00<00:01, 11.5M


sub-MSSM2_UNIT1.nii.gz:  48%|██████▋       | 12.7M/26.6M [00:00<00:01, 14.6MB/s]
sub-MSSM2_rec-uncombined00002_T2starw.nii.gz:   0%|  | 0.00/360k [00:00<?, ?B/s]




sub-MSSM2_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]




                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 7.23M/19.0M [00:00<00:01, 12.2M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 6.17M/17.4M [00:00<00:00, 12.1M


sub-MSSM2_UNIT1.nii.gz:  53%|███████▍      | 14.1M/26.6M [00:01<00:00, 14.2MB/s]
                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  45%|▍| 8.47M/19.0M [00:00<00:00, 12.4M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  43%|▍| 7.42M/17.4M [00:00<00:00, 12.4M



sub-MSSM2_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                
sub-MSSM2_UNIT1.nii.gz:  58%|████████      | 15.5M/26.6M [00:01<00:00, 12.9MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  51%|▌| 9.76M/19.0M [00:00<00:00, 12.8M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▌| 8.75M/17.4M [00:00<00:00, 12.9M
sub-MSSM2_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/736k [00:00<?, ?B/s]


sub-MSSM2_UNIT1.nii.gz:  65%|█████████▏    | 17.4M/26.6M [00:01<00:00, 14.8MB/s]
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 11.7M/19.0M [00:01<00:00, 14.9M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  60%|▌| 10.5M/17.4M [00:00<00:00, 14.7M




sub-MSSM2_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]




                                                                                
sub-MSSM2_rec-uncombined00007_T2starw.nii.gz:  42%|▍| 306k/736k [00:00<00:00, 2.
sub-MSSM2_UNIT1.nii.gz:  71%|█████████▉    | 18.8M/26.6M [00:01<00:00, 13.8MB/s]



                                                                                
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  69%|▋| 12.0M/17.4M [00:01<00:00, 12.4M
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 13.1M/19.0M [00:01<00:00, 12.6M
sub-MSSM2_UNIT1.nii.gz:  76%|██████████▌   | 20.2M/26.6M [00:01<00:00, 13.7MB/s]
sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 13.9M/17.4M [00:01<00:00, 14.7M
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  79%|▊| 15.1M/19.0M [00:01<00:00, 14.8M



sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/728k [00:00<?, ?B/s]
sub-MSSM2_UNIT1.nii.gz:  83%|███████████▌  | 22.1M/26.6M [00:01<00:00, 15.4MB/s]
sub-MSSM2_rec-uncombined00013_T2starw.nii.gz:   0%|  | 0.00/354k [00:00<?, ?B/s]

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 15.5M/17.4M [00:01<00:00, 15.3M
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 16.7M/19.0M [00:01<00:00, 15.4M



sub-MSSM2_rec-uncombined00005_T2starw.nii.gz:  51%|▌| 374k/728k [00:00<00:00, 3.
sub-MSSM2_UNIT1.nii.gz:  89%|████████████▍ | 23.6M/26.6M [00:01<00:00, 15.5MB/s]



                                                                                
sub-MSSM2_rec-uncombined00013_T2starw.nii.gz:  67%|▋| 237k/354k [00:00<00:00, 2.




                                                                                
sub-MSSM2_inv-2_part-mag_MP2RAGE.nii.gz:  96%|▉| 18.2M/19.0M [00:01<00:00, 13.6M

sub-MSSM2_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 17.1M/17.4M [00:01<00:00, 13.4M
                                                                                


sub-MSSM2_UNIT1.nii.gz:  94%|█████████████▏| 25.1M/26.6M [00:01<00:00, 12.8MB/s]
                                                                                
                                                                                

sub-MSSM2_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/737k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00009_T2starw.nii.gz:   0%|  | 0.00/741k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00009_T2starw.nii.gz:  66%|▋| 492k/741k [00:00<00:00, 5.

                                                                                
sub-MSSM2_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:   0%|  | 0.00/696k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/352k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



sub-MSSM2_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:  44%|▍| 305k/696k [00:00<00:00, 2.


                                                                                



                                                                                

sub-MSSM2_rec-uncombined00014_T2starw.nii.gz:  44%|▍| 154k/352k [00:00<00:00, 1.
                                                                                
sub-MSSM2_rec-uncombined00015_T2starw.nii.gz:  80%|▊| 561k/696k [00:00<00:00, 2.
                                                                                
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/711k [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_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/707k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00021_T2starw.nii.gz:  40%|▍| 288k/711k [00:00<00:00, 2.
                                                                                


sub-MSSM2_rec-uncombined00017_T2starw.nii.gz:  63%|▋| 441k/702k [00:00<00:00, 4.
sub-MSSM2_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                



sub-MSSM2_rec-uncombined00019_T2starw.nii.gz:  38%|▍| 271k/707k [00:00<00:00, 2.
                                                                                
sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/697k [00:00<?, ?B/s]


                                                                                
sub-MSSM2_rec-uncombined00025_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00023_T2starw.nii.gz:  58%|▌| 407k/697k [00:00<00:00, 3.

sub-MSSM2_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/345k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/678k [00:00<?, ?B/s]


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



sub-MSSM2_rec-uncombined00026_T2starw.nii.gz:  89%|▉| 305k/342k [00:00<00:00, 2.


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

sub-MSSM2_rec-uncombined00027_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00029_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00027_T2starw.nii.gz:  83%|▊| 561k/680k [00:00<00:00, 5.
                                                                                
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-uncombined00031_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/682k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/662k [00:00<?, ?B/s]


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



sub-MSSM2_rec-uncombined00037_T2starw.nii.gz:   0%|  | 0.00/335k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/676k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00033_T2starw.nii.gz:  92%|▉| 628k/682k [00:00<00:00, 6.
                                                                                
sub-MSSM2_rec-uncombined00038_T2starw.nii.gz:  71%|▋| 238k/333k [00:00<00:00, 2.

sub-MSSM2_rec-uncombined00035_T2starw.nii.gz:  46%|▍| 305k/662k [00:00<00:00, 2.


                                                                                
sub-MSSM2_rec-uncombined00037_T2starw.nii.gz:  79%|▊| 266k/335k [00:00<00:00, 2.



                                                                                
sub-MSSM2_rec-uncombined00031_T2starw.nii.gz:  30%|▎| 204k/676k [00:00<00:00, 1.

                                                                                
sub-MSSM2_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]




                                                                                
                                                                                
sub-MSSM2_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/662k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/656k [00:00<?, ?B/s]
sub-MSSM2_rec-uncombined00039_T2starw.nii.gz:  67%|▋| 441k/662k [00:00<00:00, 3.

sub-MSSM2_rec-uncombined00041_T2starw.nii.gz:  47%|▍| 310k/656k [00:00<00:00, 2.
                                                                                

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

                                                                                
sub-MSSM2_rec-uncombined00045_T2starw.nii.gz:   0%|  | 0.00/655k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/633k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00045_T2starw.nii.gz:  67%|▋| 441k/655k [00:00<00:00, 4.


sub-MSSM2_rec-uncombined00045_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-MSSM2_rec-uncombined00047_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00047_T2starw.nii.gz:  48%|▍| 305k/633k [00:00<00:00, 2.
                                                                                
sub-MSSM2_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                

sub-MSSM2_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00049_T2starw.nii.gz:   0%|  | 0.00/328k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/324k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00049_T2starw.nii.gz:  94%|▉| 306k/328k [00:00<00:00, 2.

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-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/647k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

sub-MSSM2_rec-uncombined00051_T2starw.nii.gz:  97%|▉| 628k/647k [00:00<00:00, 5.
                                                                                

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

                                                                                
sub-MSSM2_rec-uncombined00057_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM2_rec-uncombined00053_T2starw.nii.gz: 100%|█| 639k/639k [00:00<00:00, 6.
                                                                                
sub-MSSM2_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                

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

sub-MSSM2_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/633k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/612k [00:00<?, ?B/s]

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

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

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


sub-MSSM2_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [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:   3%| | 135k/4.01M [00:00<00:03, 1.29MB

sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:   6%| | 238k/3.61M [00:00<00:01, 2.
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.8M [00:00<?, ?B/s]
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  42%|▍| 1.68M/4.01M [00:00<00:00, 9.80M

sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  51%|▌| 1.83M/3.61M [00:00<00:00, 1



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



                                                                                
sub-MSSM2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/90.5k [00:00<?, ?B/s]
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   3%| | 458k/15.8M [00:00<00:03, 4.65MB/



                                                                                
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  66%|▋| 2.64M/4.01M [00:00<00:00, 8.44M

sub-MSSM2_acq-coilQaSagSmall_GFactor.nii.gz:  79%|▊| 2.86M/3.61M [00:00<00:00, 9
                                                                                


sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:   7%| | 1.11M/15.8M [00:00<00:02, 5.30MB

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

                                                                                
sub-MSSM2_acq-coilQaSagLarge_SNR.nii.gz:  87%|▊| 3.48M/4.01M [00:00<00:00, 8.17M
                                                                                

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


sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.74M/15.8M [00:00<00:02, 5.86MB
                                                                                
sub-MSSM2_acq-famp_TB1TFL.json:   0%|               | 0.00/1.74k [00:00<?, ?B/s]
                                                                                



sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.86M/15.8M [00:00<00:01, 8.04MB
sub-MSSM2_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/91.2k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  38%|▍| 6.07M/15.8M [00:00<00:00, 17.0MB
sub-MSSM2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.1k [00:00<?, ?B/s]
sub-MSSM2_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/1.36k [00:00<?, ?B/s]

                                                                                

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



sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  49%|▍| 7.79M/15.8M [00:00<00:00, 17.3MB
sub-MSSM2_acq-refv-1.5_TB1DREAM.json:   0%|         | 0.00/1.36k [00:00<?, ?B/s]
                                                                                


sub-MSSM2_acq-famp_TB1TFL.nii.gz:  62%|███▋  | 492k/794k [00:00<00:00, 4.73MB/s]
                                                                                
sub-MSSM2_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  60%|▌| 9.48M/15.8M [00:00<00:00, 14.5MB
sub-MSSM2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/86.8k [00:00<?, ?B/s]

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

                                                                                
                                                                                
sub-MSSM2_acq-coilQaTra_GFactor.nii.gz:  75%|▋| 11.8M/15.8M [00:00<00:00, 16.8MB
sub-MSSM3_T2starw.nii.gz:   0%|                     | 0.00/1.51M [00:00<?, ?B/s]


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


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

                                                                                

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

                                                                                
sub-MSSM3_T2starw.nii.gz:   7%|▊            | 102k/1.51M [00:00<00:01, 1.03MB/s]


                                                                                
                                                                                
sub-MSSM3_inv-2_MP2RAGE.json:   0%|                 | 0.00/1.18k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.9M [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00002_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]

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


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/22.0M [00:00<?, ?B/s]
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 612k/18.9M [00:00<00:03, 6.26MB
sub-MSSM3_UNIT1.nii.gz:   2%|▎              | 594k/26.6M [00:00<00:04, 6.01MB/s]



sub-MSSM3_rec-uncombined00001_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/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:   2%| | 475k/22.0M [00:00<00:06, 3.74MB
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:   9%| | 1.76M/18.9M [00:00<00:01, 9.54M
sub-MSSM3_UNIT1.nii.gz:   4%|▋             | 1.19M/26.6M [00:00<00:04, 6.25MB/s]



                                                                                


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:   5%| | 1.09M/22.0M [00:00<00:04, 5.22M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.67M/18.9M [00:00<00:01, 9.08M
sub-MSSM3_UNIT1.nii.gz:   8%|█             | 2.07M/26.6M [00:00<00:03, 7.57MB/s]



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


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 2.17M/22.0M [00:00<00:02, 7.80M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.45M/18.9M [00:00<00:01, 12.7M
                                                                                

sub-MSSM3_UNIT1.nii.gz:  14%|█▉            | 3.74M/26.6M [00:00<00:02, 10.1MB/s]



sub-MSSM3_rec-uncombined00005_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.95M/22.0M [00:00<00:02, 6.72M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.68M/18.9M [00:00<00:01, 11.3M
sub-MSSM3_UNIT1.nii.gz:  19%|██▋           | 5.02M/26.6M [00:00<00:02, 11.2MB/s]
sub-MSSM3_rec-uncombined00003_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 4.24M/22.0M [00:00<00:02, 8.83M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  37%|▎| 6.96M/18.9M [00:00<00:01, 11.9M
sub-MSSM3_UNIT1.nii.gz:  24%|███▎          | 6.40M/26.6M [00:00<00:01, 12.2MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 6.27M/22.0M [00:00<00:01, 12.7M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  47%|▍| 8.89M/18.9M [00:00<00:00, 14.4M
sub-MSSM3_rec-uncombined00003_T2starw.nii.gz:   0%|  | 0.00/759k [00:00<?, ?B/s]

sub-MSSM3_UNIT1.nii.gz:  31%|████▎         | 8.27M/26.6M [00:00<00:01, 14.5MB/s]
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:   0%|  | 0.00/766k [00:00<?, ?B/s]


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 7.99M/22.0M [00:00<00:01, 14.3M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  56%|▌| 10.6M/18.9M [00:00<00:00, 15.3M
sub-MSSM3_rec-uncombined00003_T2starw.nii.gz:  60%|▌| 458k/759k [00:00<00:00, 4.

sub-MSSM3_UNIT1.nii.gz:  36%|█████         | 9.66M/26.6M [00:00<00:01, 14.5MB/s]
sub-MSSM3_rec-uncombined00005_T2starw.nii.gz:  45%|▍| 341k/766k [00:00<00:00, 3.



                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  43%|▍| 9.41M/22.0M [00:00<00:01, 13.1M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  64%|▋| 12.1M/18.9M [00:00<00:00, 13.9M




                                                                                
sub-MSSM3_UNIT1.nii.gz:  42%|█████▊        | 11.1M/26.6M [00:00<00:01, 12.5MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  49%|▍| 10.7M/22.0M [00:01<00:00, 13.2M



sub-MSSM3_rec-uncombined00007_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  71%|▋| 13.4M/18.9M [00:01<00:00, 12.7M

sub-MSSM3_UNIT1.nii.gz:  47%|██████▌       | 12.4M/26.6M [00:01<00:01, 13.0MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 12.0M/22.0M [00:01<00:00, 13.3M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 15.3M/18.9M [00:01<00:00, 14.6M

sub-MSSM3_UNIT1.nii.gz:  54%|███████▌      | 14.4M/26.6M [00:01<00:00, 15.1MB/s]
sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:   0%|  | 0.00/769k [00:00<?, ?B/s]


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  64%|▋| 14.0M/22.0M [00:01<00:00, 15.4M




sub-MSSM3_rec-uncombined00009_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]




                                                                                
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 16.8M/18.9M [00:01<00:00, 14.4M

sub-MSSM3_UNIT1.nii.gz:  60%|████████▎     | 15.9M/26.6M [00:01<00:00, 14.8MB/s]
sub-MSSM3_rec-uncombined00007_T2starw.nii.gz:  38%|▍| 289k/769k [00:00<00:00, 2.


sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 15.5M/22.0M [00:01<00:00, 14.6M
sub-MSSM3_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 18.4M/18.9M [00:01<00:00, 15.1M




sub-MSSM3_rec-uncombined00011_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]




                                                                                



                                                                                
sub-MSSM3_UNIT1.nii.gz:  65%|█████████     | 17.3M/26.6M [00:01<00:00, 12.9MB/s]
                                                                                
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 16.9M/22.0M [00:01<00:00, 12.4M

sub-MSSM3_UNIT1.nii.gz:  72%|██████████    | 19.1M/26.6M [00:01<00:00, 14.5MB/s]
sub-MSSM3_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 19.8M/22.0M [00:01<00:00, 16.7M
sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:   0%|  | 0.00/762k [00:00<?, ?B/s]



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

sub-MSSM3_UNIT1.nii.gz:  82%|███████████▌  | 21.9M/26.6M [00:01<00:00, 18.4MB/s]
sub-MSSM3_rec-uncombined00014_T2starw.nii.gz:   0%|  | 0.00/371k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00011_T2starw.nii.gz:  42%|▍| 322k/762k [00:00<00:00, 2.



sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:  29%|▎| 220k/768k [00:00<00:00, 2.
sub-MSSM3_rec-uncombined00014_T2starw.nii.gz:  96%|▉| 356k/371k [00:00<00:00, 3.




                                                                                
sub-MSSM3_UNIT1.nii.gz:  89%|████████████▌ | 23.7M/26.6M [00:01<00:00, 15.8MB/s]
                                                                                




sub-MSSM3_rec-uncombined00009_T2starw.nii.gz:  82%|▊| 628k/768k [00:00<00:00, 3.
                                                                                
sub-MSSM3_UNIT1.nii.gz:  96%|█████████████▍| 25.4M/26.6M [00:01<00:00, 16.2MB/s]

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

sub-MSSM3_rec-uncombined00014_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00013_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                


                                                                                
sub-MSSM3_rec-uncombined00017_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00013_T2starw.nii.gz:  65%|▋| 238k/367k [00:00<00:00, 2.
                                                                                
sub-MSSM3_rec-uncombined00015_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00019_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00017_T2starw.nii.gz:   0%|  | 0.00/755k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00019_T2starw.nii.gz:   0%|  | 0.00/756k [00:00<?, ?B/s]


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



sub-MSSM3_rec-uncombined00021_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_rec-uncombined00017_T2starw.nii.gz:  44%|▍| 328k/755k [00:00<00:00, 3.
sub-MSSM3_rec-uncombined00019_T2starw.nii.gz:  67%|▋| 509k/756k [00:00<00:00, 5.
                                                                                



sub-MSSM3_rec-uncombined00015_T2starw.nii.gz:  20%|▏| 152k/748k [00:00<00:00, 1.
                                                                                
sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:   0%|  | 0.00/755k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:  20%|▏| 153k/755k [00:00<00:00, 1.

sub-MSSM3_rec-uncombined00023_T2starw.json:   0%|   | 0.00/1.25k [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-uncombined00023_T2starw.nii.gz:   0%|  | 0.00/740k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00021_T2starw.nii.gz:  49%|▍| 373k/755k [00:00<00:00, 1.
                                                                                
sub-MSSM3_rec-uncombined00023_T2starw.nii.gz:  76%|▊| 560k/740k [00:00<00:00, 5.


                                                                                
sub-MSSM3_rec-uncombined00026_T2starw.nii.gz:   0%|  | 0.00/363k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00025_T2starw.nii.gz:   0%|  | 0.00/358k [00:00<?, ?B/s]


sub-MSSM3_rec-uncombined00026_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00026_T2starw.nii.gz: 100%|█| 363k/363k [00:00<00:00, 3.
                                                                                

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


sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:   0%|  | 0.00/735k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00025_T2starw.nii.gz:  66%|▋| 237k/358k [00:00<00:00, 2.

                                                                                
sub-MSSM3_rec-uncombined00031_T2starw.nii.gz:  95%|▉| 696k/735k [00:00<00:00, 7.
sub-MSSM3_rec-uncombined00027_T2starw.nii.gz:  43%|▍| 310k/728k [00:00<00:00, 2.


                                                                                

sub-MSSM3_rec-uncombined00031_T2starw.json:   0%|   | 0.00/1.25k [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:  82%|▊| 600k/728k [00:00<00:00, 2.
                                                                                

sub-MSSM3_rec-uncombined00029_T2starw.nii.gz:   0%|  | 0.00/731k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00033_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                

sub-MSSM3_rec-uncombined00035_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00029_T2starw.nii.gz:  21%|▏| 153k/731k [00:00<00:00, 1.

                                                                                
sub-MSSM3_rec-uncombined00037_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00035_T2starw.nii.gz:   0%|  | 0.00/705k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00035_T2starw.nii.gz:  82%|▊| 577k/705k [00:00<00:00, 5.

                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:   0%|  | 0.00/730k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:   0%|  | 0.00/708k [00:00<?, ?B/s]


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



sub-MSSM3_rec-uncombined00038_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]



                                                                                
sub-MSSM3_rec-uncombined00033_T2starw.nii.gz:  84%|▊| 611k/730k [00:00<00:00, 5.
                                                                                
sub-MSSM3_rec-uncombined00039_T2starw.nii.gz:  50%|▌| 357k/708k [00:00<00:00, 3.

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


sub-MSSM3_rec-uncombined00038_T2starw.nii.gz: 100%|█| 353k/353k [00:00<00:00, 2.


                                                                                

sub-MSSM3_rec-uncombined00039_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00041_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00037_T2starw.nii.gz:  64%|▋| 221k/347k [00:00<00:00, 2.
                                                                                
sub-MSSM3_rec-uncombined00043_T2starw.json:   0%|   | 0.00/1.25k [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-uncombined00041_T2starw.nii.gz:   0%|  | 0.00/710k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:   0%|  | 0.00/712k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00041_T2starw.nii.gz:  86%|▊| 612k/710k [00:00<00:00, 6.
                                                                                


sub-MSSM3_rec-uncombined00043_T2starw.nii.gz:  74%|▋| 527k/712k [00:00<00:00, 4.
sub-MSSM3_rec-uncombined00047_T2starw.nii.gz:   0%|  | 0.00/672k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00049_T2starw.json:   0%|   | 0.00/1.21k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00047_T2starw.nii.gz:  51%|▌| 340k/672k [00:00<00:00, 3.
                                                                                

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

sub-MSSM3_rec-uncombined00051_T2starw.json:   0%|   | 0.00/1.26k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00053_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00045_T2starw.nii.gz:  12%| | 83.6k/705k [00:00<00:00, 8

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


                                                                                
sub-MSSM3_rec-uncombined00050_T2starw.nii.gz:   0%|  | 0.00/342k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00051_T2starw.nii.gz:   0%|  | 0.00/686k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00050_T2starw.json:   0%|   | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00050_T2starw.nii.gz:  94%|▉| 322k/342k [00:00<00:00, 3.
                                                                                
sub-MSSM3_rec-uncombined00051_T2starw.nii.gz:  49%|▍| 339k/686k [00:00<00:00, 3.
                                                                                
sub-MSSM3_rec-uncombined00057_T2starw.nii.gz:   0%|  | 0.00/676k [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-uncombined00055_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_rec-uncombined00057_T2starw.nii.gz:  33%|▎| 222k/676k [00:00<00:00, 1.


sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:   0%|  | 0.00/687k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00053_T2starw.nii.gz:  40%|▍| 275k/686k [00:00<00:00, 2.
                                                                                
                                                                                


sub-MSSM3_rec-uncombined00055_T2starw.nii.gz:  47%|▍| 322k/687k [00:00<00:00, 2.
                                                                                
sub-MSSM3_acq-coilQaSagLarge_SNR.json:   0%|        | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:   0%|  | 0.00/642k [00:00<?, ?B/s]
sub-MSSM3_rec-uncombined00059_T2starw.json:   0%|   | 0.00/1.25k [00:00<?, ?B/s]

                                                                                
sub-MSSM3_rec-uncombined00059_T2starw.nii.gz:  98%|▉| 628k/642k [00:00<00:00, 5.
                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/1.29k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.32M [00:00<?, ?B/s]

sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaTra_GFactor.json:   0%|         | 0.00/1.22k [00:00<?, ?B/s]


                                                                                
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:   7%| | 306k/4.32M [00:00<00:01, 3.12MB

sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  11%| | 408k/3.61M [00:00<00:00, 4.


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


                                                                                
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  30%|▎| 1.28M/4.32M [00:00<00:00, 7.31M


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

sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  40%|▍| 1.43M/3.61M [00:00<00:00, 8
sub-MSSM3_acq-famp_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]



                                                                                


                                                                                
sub-MSSM3_acq-coilQaSagSmall_GFactor.nii.gz:  65%|▋| 2.36M/3.61M [00:00<00:00, 8
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  50%|▌| 2.17M/4.32M [00:00<00:00, 7.71M
                                                                                

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/16.0M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaSagLarge_SNR.nii.gz:  92%|▉| 3.96M/4.32M [00:00<00:00, 11.9M


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:   2%| | 271k/16.0M [00:00<00:05, 2.77MB/
                                                                                
sub-MSSM3_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/1.36k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:   8%| | 1.36M/16.0M [00:00<00:01, 7.89MB
sub-NTNU1_T2starw.json:   0%|                       | 0.00/2.45k [00:00<?, ?B/s]
                                                                                


sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.92M/16.0M [00:00<00:01, 11.7MB
sub-MSSM3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/89.7k [00:00<?, ?B/s]


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



sub-MSSM3_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/92.7k [00:00<?, ?B/s]
                                                                                
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  25%|▎| 4.07M/16.0M [00:00<00:01, 11.8MB
                                                                                


sub-MSSM3_acq-famp_TB1TFL.nii.gz:  41%|██▍   | 339k/833k [00:00<00:00, 3.20MB/s]
                                                                                
sub-MSSM3_acq-refv_TB1DREAM.json:   0%|             | 0.00/1.35k [00:00<?, ?B/s]
                                                                                

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

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 5.20M/16.0M [00:00<00:01, 9.96MB
sub-NTNU1_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_T2starw.nii.gz:  23%|██▉          | 307k/1.33M [00:00<00:00, 3.14MB/s]

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  43%|▍| 6.90M/16.0M [00:00<00:00, 12.4MB
sub-NTNU1_inv-1_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]


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


                                                                                
sub-NTNU1_T2starw.nii.gz:  95%|███████████▍| 1.26M/1.33M [00:00<00:00, 6.43MB/s]

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  52%|▌| 8.41M/16.0M [00:00<00:00, 12.8MB
                                                                                
sub-NTNU1_UNIT1.nii.gz:   0%|                       | 0.00/26.0M [00:00<?, ?B/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  73%|▋| 11.7M/16.0M [00:00<00:00, 19.0MB


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


                                                                                
sub-NTNU1_UNIT1.nii.gz:   2%|▏              | 408k/26.0M [00:00<00:07, 3.47MB/s]
sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  86%|▊| 13.8M/16.0M [00:00<00:00, 20.0MB


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



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/21.4M [00:00<?, ?B/s]
sub-NTNU1_UNIT1.nii.gz:   6%|▉             | 1.63M/26.0M [00:00<00:02, 8.56MB/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:   2%| | 391k/19.7M [00:00<00:05, 3.43MB

sub-MSSM3_acq-coilQaTra_GFactor.nii.gz:  99%|▉| 15.8M/16.0M [00:01<00:00, 19.1MB



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   1%| | 220k/21.4M [00:00<00:09, 2.24MB

                                                                                
sub-NTNU1_UNIT1.nii.gz:  10%|█▎            | 2.49M/26.0M [00:00<00:02, 8.31MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:   6%| | 1.13M/19.7M [00:00<00:03, 5.85M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:   4%| | 985k/21.4M [00:00<00:03, 5.52MB
sub-NTNU1_UNIT1.nii.gz:  17%|██▎           | 4.40M/26.0M [00:00<00:01, 12.6MB/s]
sub-NTNU1_rec-uncombined02_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 2.22M/19.7M [00:00<00:02, 8.33M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  10%| | 2.07M/21.4M [00:00<00:02, 8.32M
sub-NTNU1_UNIT1.nii.gz:  23%|███▎          | 6.09M/26.0M [00:00<00:01, 14.3MB/s]
sub-NTNU1_rec-uncombined02_T2starw.nii.gz:  45%|▍| 459k/1.01M [00:00<00:00, 4.67


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 3.24M/19.7M [00:00<00:01, 9.16M




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



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  14%|▏| 3.00M/21.4M [00:00<00:02, 8.88M
                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  21%|▏| 4.16M/19.7M [00:00<00:01, 9.33M
sub-NTNU1_UNIT1.nii.gz:  29%|████          | 7.49M/26.0M [00:00<00:01, 13.1MB/s]




sub-NTNU1_rec-uncombined01_T2starw.nii.gz:  23%|▏| 255k/1.06M [00:00<00:00, 2.59



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.96M/21.4M [00:00<00:01, 9.26M
                                                                                


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.71M/19.7M [00:00<00:01, 11.6M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  25%|▎| 5.38M/21.4M [00:00<00:01, 10.4M
sub-NTNU1_UNIT1.nii.gz:  35%|████▊         | 9.02M/26.0M [00:00<00:01, 12.8MB/s]

sub-NTNU1_rec-uncombined04_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  35%|▎| 6.84M/19.7M [00:00<00:01, 10.9M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  31%|▎| 6.63M/21.4M [00:00<00:01, 11.2M
sub-NTNU1_UNIT1.nii.gz:  40%|█████▌        | 10.3M/26.0M [00:00<00:01, 13.0MB/s]
sub-NTNU1_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  42%|▍| 8.23M/19.7M [00:00<00:00, 12.0M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  37%|▎| 8.01M/21.4M [00:00<00:01, 12.2M
sub-NTNU1_UNIT1.nii.gz:  45%|██████▎       | 11.7M/26.0M [00:00<00:01, 13.4MB/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.3M/19.7M [00:00<00:00, 14.9M

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

                                                                                



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  46%|▍| 9.93M/21.4M [00:00<00:00, 14.6M
sub-NTNU1_UNIT1.nii.gz:  53%|███████▎      | 13.7M/26.0M [00:01<00:00, 15.5MB/s]
sub-NTNU1_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  60%|▌| 11.7M/19.7M [00:01<00:00, 13.9M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  53%|▌| 11.3M/21.4M [00:01<00:00, 13.7M
sub-NTNU1_UNIT1.nii.gz:  58%|████████▏     | 15.2M/26.0M [00:01<00:00, 14.4MB/s]

sub-NTNU1_rec-uncombined04_T2starw.nii.gz:  59%|▌| 612k/1.02M [00:00<00:00, 6.26
                                                                                
sub-NTNU1_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 13.1M/19.7M [00:01<00:00, 13.3M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 12.7M/21.4M [00:01<00:00, 13.3M
sub-NTNU1_UNIT1.nii.gz:  64%|████████▉     | 16.6M/26.0M [00:01<00:00, 13.6MB/s]
sub-NTNU1_rec-uncombined03_T2starw.nii.gz:  43%|▍| 459k/1.04M [00:00<00:00, 4.69


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 14.6M/19.7M [00:01<00:00, 14.0M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 14.2M/21.4M [00:01<00:00, 14.0M
sub-NTNU1_UNIT1.nii.gz:  70%|█████████▊    | 18.3M/26.0M [00:01<00:00, 14.6MB/s]
                                                                                
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  73%|▋| 15.5M/21.4M [00:01<00:00, 13.6M


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  81%|▊| 15.9M/19.7M [00:01<00:00, 13.6M
sub-NTNU1_UNIT1.nii.gz:  76%|██████████▌   | 19.7M/26.0M [00:01<00:00, 14.2MB/s]
sub-NTNU1_rec-uncombined06_T2starw.nii.gz:  46%|▍| 492k/1.04M [00:00<00:00, 5.01



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 17.2M/21.4M [00:01<00:00, 14.7M


sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 17.6M/19.7M [00:01<00:00, 14.5M
sub-NTNU1_UNIT1.nii.gz:  82%|███████████▍  | 21.3M/26.0M [00:01<00:00, 14.7MB/s]




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

                                                                                
sub-NTNU1_inv-1_part-mag_MP2RAGE.nii.gz:  96%|▉| 19.0M/19.7M [00:01<00:00, 13.9M



sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  87%|▊| 18.6M/21.4M [00:01<00:00, 14.0M
sub-NTNU1_UNIT1.nii.gz:  87%|████████████▏ | 22.7M/26.0M [00:01<00:00, 14.2MB/s]




sub-NTNU1_rec-uncombined05_T2starw.nii.gz:  29%|▎| 305k/1.03M [00:00<00:00, 3.09


                                                                                
sub-NTNU1_inv-2_part-mag_MP2RAGE.nii.gz:  93%|▉| 20.0M/21.4M [00:01<00:00, 13.8M




                                                                                
sub-NTNU1_UNIT1.nii.gz:  93%|████████████▉ | 24.1M/26.0M [00:01<00:00, 13.0MB/s]

sub-NTNU1_rec-uncombined06_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_inv-2_part-mag_MP2RAGE.nii.gz: 100%|▉| 21.3M/21.4M [00:01<00:00, 13.1M



                                                                                
sub-NTNU1_UNIT1.nii.gz:  97%|█████████████▋| 25.3M/26.0M [00:02<00:00, 12.7MB/s]


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


                                                                                
sub-NTNU1_rec-uncombined07_T2starw.nii.gz:  36%|▎| 407k/1.09M [00:00<00:00, 4.16
                                                                                
                                                                                
sub-NTNU1_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined10_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined09_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined08_T2starw.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_rec-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined09_T2starw.nii.gz:  28%|▎| 306k/1.08M [00:00<00:00, 2.92



sub-NTNU1_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.12M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined08_T2starw.nii.gz:  47%|▍| 492k/1.01M [00:00<00:00, 5.00


sub-NTNU1_rec-uncombined10_T2starw.nii.gz:  64%|▋| 714k/1.09M [00:00<00:00, 7.25
                                                                                
sub-NTNU1_rec-uncombined11_T2starw.nii.gz:  25%|▎| 288k/1.12M [00:00<00:00, 2.91
sub-NTNU1_rec-uncombined11_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU1_rec-uncombined08_T2starw.nii.gz:  95%|▉| 985k/1.01M [00:00<00:00, 4.11

                                                                                



sub-NTNU1_rec-uncombined11_T2starw.nii.gz:  50%|▌| 577k/1.12M [00:00<00:00, 2.77
                                                                                
sub-NTNU1_rec-uncombined12_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-uncombined12_T2starw.nii.gz:   0%|    | 0.00/1.11M [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined12_T2starw.nii.gz:  55%|▌| 629k/1.11M [00:00<00:00, 6.28
                                                                                
sub-NTNU1_rec-uncombined14_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined13_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-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined14_T2starw.nii.gz:  52%|▌| 612k/1.14M [00:00<00:00, 6.25

sub-NTNU1_rec-uncombined13_T2starw.nii.gz:  88%|▉| 987k/1.09M [00:00<00:00, 10.1
                                                                                

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

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


sub-NTNU1_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.09M [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined15_T2starw.nii.gz:  27%|▎| 305k/1.10M [00:00<00:00, 3.09


sub-NTNU1_rec-uncombined16_T2starw.nii.gz:  27%|▎| 300k/1.09M [00:00<00:00, 2.77
sub-NTNU1_rec-uncombined20_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                

sub-NTNU1_rec-uncombined17_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined17_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined15_T2starw.nii.gz:  97%|▉| 1.06M/1.10M [00:00<00:00, 5.9

                                                                                
sub-NTNU1_rec-uncombined16_T2starw.nii.gz:  68%|▋| 759k/1.09M [00:00<00:00, 3.39


                                                                                
sub-NTNU1_rec-uncombined17_T2starw.nii.gz:  63%|▋| 645k/0.99M [00:00<00:00, 6.21
                                                                                
sub-NTNU1_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined19_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined18_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]

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

                                                                                
sub-NTNU1_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]


                                                                                
sub-NTNU1_rec-uncombined18_T2starw.nii.gz:  29%|▎| 289k/0.98M [00:00<00:00, 2.56
                                                                                


sub-NTNU1_rec-uncombined19_T2starw.nii.gz:  15%|▏| 152k/1.01M [00:00<00:00, 1.55
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]

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


sub-NTNU1_rec-uncombined21_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU1_rec-uncombined20_T2starw.nii.gz:  91%|▉| 918k/0.99M [00:00<00:00, 9.38
                                                                                
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]

sub-NTNU1_rec-uncombined22_T2starw.nii.gz:  68%|▋| 696k/1.01M [00:00<00:00, 7.04

                                                                                
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:  13%|▏| 135k/1.00M [00:00<00:00, 1.17

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

                                                                                
sub-NTNU1_rec-uncombined24_T2starw.nii.gz:  39%|▍| 407k/1.01M [00:00<00:00, 3.92

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

                                                                                
sub-NTNU1_rec-uncombined21_T2starw.nii.gz:  85%|▊| 866k/1.00M [00:00<00:00, 4.44


                                                                                
                                                                                

sub-NTNU1_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.46k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_rec-uncombined23_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]

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

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

                                                                                
sub-NTNU1_rec-uncombined23_T2starw.nii.gz:  22%|▏| 220k/0.98M [00:00<00:00, 2.24
                                                                                
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.61M [00:00<?, ?B/s]
sub-NTNU1_acq-anat_TB1TFL.nii.gz:   0%|              | 0.00/846k [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.json:   0%|         | 0.00/2.12k [00:00<?, ?B/s]



                                                                                
sub-NTNU1_acq-famp_TB1DREAM.json:   0%|             | 0.00/2.18k [00:00<?, ?B/s]
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:   8%| | 305k/3.61M [00:00<00:01, 2.



                                                                                

sub-NTNU1_acq-anat_TB1TFL.nii.gz:  20%|█▏    | 170k/846k [00:00<00:00, 1.70MB/s]


sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:   4%| | 182k/4.11M [00:00<00:02, 1.86MB
                                                                                
sub-NTNU1_acq-coilQaSagSmall_GFactor.nii.gz:  29%|▎| 1.04M/3.61M [00:00<00:00, 5


sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  24%|▏| 998k/4.11M [00:00<00:00, 5.64MB

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

                                                                                
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:  47%|▍| 1.71M/3.61M [00:00<00:00, 6


sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  56%|▌| 2.29M/4.11M [00:00<00:00, 9.33M

                                                                                
                                                                                



sub-NTNU1_acq-coilQaSagLarge_SNR.nii.gz:  88%|▉| 3.63M/4.11M [00:00<00:00, 11.2M
                                                                                
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:   0%|       | 0.00/15.6M [00:00<?, ?B/s]

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


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


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

sub-NTNU1_acq-famp_TB1TFL.nii.gz:  18%|█     | 170k/951k [00:00<00:00, 1.46MB/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   5%| | 731k/15.6M [00:00<00:02, 5.78MB/


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


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


                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:   9%| | 1.39M/15.6M [00:00<00:02, 6.20MB
sub-NTNU1_acq-famp_TB1TFL.nii.gz:  91%|█████▍| 866k/951k [00:00<00:00, 4.27MB/s]

                                                                                

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

                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  18%|▏| 2.77M/15.6M [00:00<00:01, 9.61MB
sub-NTNU1_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/89.3k [00:00<?, ?B/s]
                                                                                
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  41%|▍| 6.39M/15.6M [00:00<00:00, 20.1MB
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:  60%|▌| 9.39M/15.6M [00:00<00:00, 24.0MB
sub-NTNU2_T2starw.nii.gz:  30%|███▉         | 408k/1.32M [00:00<00:00, 4.17MB/s]

sub-NTNU2_UNIT1.nii.gz:   0%|                       | 0.00/26.1M [00:00<?, ?B/s]
                                                                                
sub-NTNU2_UNIT1.nii.gz:   1%|▏              | 300k/26.1M [00:00<00:10, 2.55MB/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  75%|▊| 11.8M/15.6M [00:00<00:00, 20.7MB
sub-NTNU2_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]


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

sub-NTNU2_UNIT1.nii.gz:   5%|▋             | 1.34M/26.1M [00:00<00:03, 7.12MB/s]
sub-NTNU1_acq-coilQaTra_GFactor.nii.gz:  89%|▉| 13.8M/15.6M [00:00<00:00, 20.3MB
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.3M [00:00<?, ?B/s]




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




                                                                                


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 560k/19.9M [00:00<00:03, 5.66MB

sub-NTNU2_UNIT1.nii.gz:  12%|█▋            | 3.12M/26.1M [00:00<00:02, 10.8MB/s]
                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   1%| | 186k/18.3M [00:00<00:10, 1.89MB


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.09M/19.9M [00:00<00:03, 5.20M

sub-NTNU2_UNIT1.nii.gz:  17%|██▎           | 4.34M/26.1M [00:00<00:01, 11.5MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.28M/18.3M [00:00<00:02, 7.53M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 2.21M/19.9M [00:00<00:02, 7.97M
sub-NTNU2_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]

sub-NTNU2_UNIT1.nii.gz:  24%|███▎          | 6.17M/26.1M [00:00<00:01, 14.1MB/s]
sub-NTNU2_rec-uncombined02_T2starw.nii.gz:   0%|     | 0.00/983k [00:00<?, ?B/s]



sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  13%|▏| 2.39M/18.3M [00:00<00:01, 9.42M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  16%|▏| 3.26M/19.9M [00:00<00:01, 9.11M
sub-NTNU2_rec-uncombined01_T2starw.nii.gz:  41%|▍| 432k/1.02M [00:00<00:00, 4.40

sub-NTNU2_UNIT1.nii.gz:  30%|████▏         | 7.71M/26.1M [00:00<00:01, 14.7MB/s]
sub-NTNU2_rec-uncombined02_T2starw.nii.gz:  41%|▍| 407k/983k [00:00<00:00, 4.12M



sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  20%|▏| 3.69M/18.3M [00:00<00:01, 11.0M
                                                                                
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 4.43M/19.9M [00:00<00:01, 9.31M

sub-NTNU2_UNIT1.nii.gz:  35%|████▉         | 9.14M/26.1M [00:00<00:01, 13.1MB/s]
sub-NTNU2_rec-uncombined02_T2starw.nii.gz:  98%|▉| 968k/983k [00:00<00:00, 5.05M




                                                                                



sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  26%|▎| 4.75M/18.3M [00:00<00:01, 9.74M
sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  28%|▎| 5.53M/19.9M [00:00<00:01, 9.99M

sub-NTNU2_UNIT1.nii.gz:  40%|█████▌        | 10.4M/26.1M [00:00<00:01, 13.1MB/s]
sub-NTNU2_rec-uncombined02_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.58M/18.3M [00:00<00:01, 11.7M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  36%|▎| 7.15M/19.9M [00:00<00:01, 11.6M
sub-NTNU2_rec-uncombined03_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_UNIT1.nii.gz:  45%|██████▎       | 11.7M/26.1M [00:01<00:01, 12.3MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  42%|▍| 7.71M/18.3M [00:00<00:00, 11.7M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  42%|▍| 8.31M/19.9M [00:00<00:01, 11.7M
sub-NTNU2_UNIT1.nii.gz:  51%|███████▏      | 13.4M/26.1M [00:01<00:00, 13.9MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 9.71M/18.3M [00:00<00:00, 14.4M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.3M/19.9M [00:00<00:00, 14.5M
sub-NTNU2_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]

sub-NTNU2_UNIT1.nii.gz:  59%|████████▎     | 15.4M/26.1M [00:01<00:00, 15.8MB/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:  63%|▋| 11.6M/18.3M [00:00<00:00, 15.8M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 12.2M/19.9M [00:01<00:00, 16.0M
sub-NTNU2_rec-uncombined03_T2starw.nii.gz:  44%|▍| 458k/1.01M [00:00<00:00, 4.67

sub-NTNU2_UNIT1.nii.gz:  65%|█████████▏    | 17.1M/26.1M [00:01<00:00, 16.2MB/s]




sub-NTNU2_rec-uncombined05_T2starw.nii.gz:  36%|▎| 357k/0.98M [00:00<00:00, 3.63
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  72%|▋| 13.1M/18.3M [00:01<00:00, 15.2M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  69%|▋| 13.7M/19.9M [00:01<00:00, 15.3M
                                                                                
sub-NTNU2_rec-uncombined05_T2starw.nii.gz:  93%|▉| 935k/0.98M [00:00<00:00, 4.97




                                                                                
sub-NTNU2_UNIT1.nii.gz:  71%|█████████▉    | 18.7M/26.1M [00:01<00:00, 13.4MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.6M/18.3M [00:01<00:00, 13.6M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  77%|▊| 15.2M/19.9M [00:01<00:00, 13.5M
sub-NTNU2_UNIT1.nii.gz:  79%|███████████   | 20.7M/26.1M [00:01<00:00, 15.3MB/s]
sub-NTNU2_rec-uncombined05_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                




sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  89%|▉| 16.4M/18.3M [00:01<00:00, 14.2M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  86%|▊| 17.0M/19.9M [00:01<00:00, 14.2M
sub-NTNU2_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU2_UNIT1.nii.gz:  85%|███████████▉  | 22.3M/26.1M [00:01<00:00, 15.0MB/s]
sub-NTNU2_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 18.0M/18.3M [00:01<00:00, 15.0M


sub-NTNU2_inv-2_part-mag_MP2RAGE.nii.gz:  94%|▉| 18.7M/19.9M [00:01<00:00, 15.0M
sub-NTNU2_rec-uncombined04_T2starw.nii.gz:  53%|▌| 544k/1.00M [00:00<00:00, 5.52
                                                                                



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



                                                                                
sub-NTNU2_UNIT1.nii.gz:  91%|████████████▋ | 23.8M/26.1M [00:01<00:00, 13.4MB/s]
                                                                                
                                                                                
sub-NTNU2_UNIT1.nii.gz:  97%|█████████████▌| 25.3M/26.1M [00:01<00:00, 14.0MB/s]
                                                                                
sub-NTNU2_rec-uncombined07_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                

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

sub-NTNU2_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.05M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined09_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]

                                                                                

sub-NTNU2_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined07_T2starw.nii.gz:  36%|▎| 391k/1.05M [00:00<00:00, 4.00


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



sub-NTNU2_rec-uncombined08_T2starw.nii.gz:   0%|     | 0.00/999k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_rec-uncombined06_T2starw.nii.gz:  43%|▍| 442k/1.00M [00:00<00:00, 4.53
sub-NTNU2_rec-uncombined10_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]
                                                                                



sub-NTNU2_rec-uncombined09_T2starw.nii.gz:  11%| | 119k/1.04M [00:00<00:00, 1.11



sub-NTNU2_rec-uncombined08_T2starw.nii.gz:  13%|▏| 135k/999k [00:00<00:00, 1.36M
                                                                                
                                                                                
sub-NTNU2_rec-uncombined09_T2starw.nii.gz:  99%|▉| 1.03M/1.04M [00:00<00:00, 5.1


                                                                                
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_rec-uncombined10_T2starw.nii.gz:  59%|▌| 628k/1.04M [00:00<00:00, 5.98
                                                                                
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.04M [00:00<?, ?B/s]

sub-NTNU2_rec-uncombined12_T2starw.json:   0%|      | 0.00/2.55k [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.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:  11%| | 118k/1.04M [00:00<00:00, 1.17
sub-NTNU2_rec-uncombined15_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                
sub-NTNU2_rec-uncombined12_T2starw.nii.gz:  76%|▊| 832k/1.07M [00:00<00:00, 6.72
sub-NTNU2_rec-uncombined11_T2starw.nii.gz:  95%|▉| 0.99M/1.04M [00:00<00:00, 5.8
                                                                                
                                                                                
sub-NTNU2_rec-uncombined15_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined14_T2starw.nii.gz:   0%|    | 0.00/1.10M [00:00<?, ?B/s]


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


                                                                                
sub-NTNU2_rec-uncombined15_T2starw.nii.gz:  58%|▌| 629k/1.06M [00:00<00:00, 6.43
sub-NTNU2_rec-uncombined14_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                


sub-NTNU2_rec-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.05M [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined14_T2starw.nii.gz:  18%|▏| 204k/1.10M [00:00<00:00, 2.08
                                                                                
                                                                                
sub-NTNU2_rec-uncombined13_T2starw.nii.gz:  66%|▋| 713k/1.05M [00:00<00:00, 5.82


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

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


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


                                                                                
sub-NTNU2_rec-uncombined16_T2starw.nii.gz:  58%|▌| 612k/1.03M [00:00<00:00, 6.24

sub-NTNU2_rec-uncombined17_T2starw.nii.gz:  58%|▌| 577k/993k [00:00<00:00, 5.87M


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

                                                                                
sub-NTNU2_rec-uncombined18_T2starw.nii.gz:  30%|▎| 288k/973k [00:00<00:00, 2.60M
                                                                                
sub-NTNU2_rec-uncombined21_T2starw.nii.gz:   0%|     | 0.00/980k [00:00<?, ?B/s]
sub-NTNU2_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]


sub-NTNU2_rec-uncombined23_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-uncombined22_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]



                                                                                
sub-NTNU2_rec-uncombined21_T2starw.nii.gz:  33%|▎| 324k/980k [00:00<00:00, 3.31M
sub-NTNU2_rec-uncombined19_T2starw.nii.gz:  17%|▏| 169k/0.99M [00:00<00:00, 1.60
sub-NTNU2_rec-uncombined20_T2starw.nii.gz:  60%|▌| 594k/987k [00:00<00:00, 6.07M
                                                                                
sub-NTNU2_rec-uncombined19_T2starw.nii.gz:  83%|▊| 850k/0.99M [00:00<00:00, 4.65

                                                                                
sub-NTNU2_rec-uncombined21_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-uncombined22_T2starw.nii.gz:  68%|▋| 679k/0.98M [00:00<00:00, 6.36
                                                                                

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

sub-NTNU2_rec-uncombined24_T2starw.nii.gz:   0%|    | 0.00/1.00M [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:  31%|▎| 323k/1.00M [00:00<00:00, 3.29
sub-NTNU2_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.55k [00:00<?, ?B/s]


                                                                                

sub-NTNU2_acq-anat_TB1TFL.nii.gz:  93%|█████▌| 679k/731k [00:00<00:00, 6.93MB/s]


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


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

                                                                                
sub-NTNU2_rec-uncombined24_T2starw.nii.gz:  81%|▊| 832k/1.00M [00:00<00:00, 3.80
                                                                                
sub-NTNU2_rec-uncombined23_T2starw.nii.gz:  26%|▎| 254k/991k [00:00<00:00, 2.32M


                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.json:   0%|         | 0.00/2.19k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.04M [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:  13%|▏| 526k/4.04M [00:00<00:00, 5.37MB

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

                                                                                
sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:   0%|  | 0.00/3.62M [00:00<?, ?B/s]
sub-NTNU2_acq-coilQaSagLarge_SNR.nii.gz:  54%|▌| 2.19M/4.04M [00:00<00:00, 12.5M


sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   0%|       | 0.00/15.5M [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-coilQaSagSmall_GFactor.nii.gz:   5%| | 186k/3.62M [00:00<00:01, 1.



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



                                                                                
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:   1%| | 152k/15.5M [00:00<00:11, 1.35MB/

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  18%|▏| 663k/3.62M [00:00<00:00, 3.
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  12%| | 1.80M/15.5M [00:00<00:01, 10.2MB
sub-NTNU2_acq-famp_TB1DREAM.json:   0%|             | 0.00/2.24k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  61%|▌| 2.22M/3.62M [00:00<00:00, 8
sub-NTNU2_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/89.1k [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-coilQaTra_GFactor.nii.gz:  24%|▏| 3.72M/15.5M [00:00<00:00, 14.5MB
                                                                                
                                                                                

sub-NTNU2_acq-coilQaSagSmall_GFactor.nii.gz:  96%|▉| 3.49M/3.62M [00:00<00:00, 9
sub-NTNU2_acq-famp_TB1TFL.json:   0%|               | 0.00/2.72k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  33%|▎| 5.16M/15.5M [00:00<00:00, 11.9MB
sub-NTNU2_acq-refv-0.66_TB1DREAM.json:   0%|        | 0.00/2.27k [00:00<?, ?B/s]
                                                                                

sub-NTNU2_acq-refv-1.5_TB1DREAM.json:   0%|         | 0.00/2.27k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  50%|▌| 7.80M/15.5M [00:00<00:00, 16.1MB
sub-NTNU2_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/935k [00:00<?, ?B/s]

sub-NTNU2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/82.6k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-famp_TB1TFL.nii.gz:  20%|█▏    | 186k/935k [00:00<00:00, 1.87MB/s]


sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  69%|▋| 10.7M/15.5M [00:00<00:00, 20.0MB
                                                                                
sub-NTNU2_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/85.9k [00:00<?, ?B/s]

sub-NTNU2_acq-refv-1.5_TB1DREAM.nii.gz:   0%|       | 0.00/89.8k [00:00<?, ?B/s]
                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  83%|▊| 12.8M/15.5M [00:00<00:00, 19.0MB
sub-NTNU2_acq-refv_TB1DREAM.json:   0%|             | 0.00/2.26k [00:00<?, ?B/s]
                                                                                


                                                                                
sub-NTNU2_acq-coilQaTra_GFactor.nii.gz:  95%|▉| 14.7M/15.5M [00:00<00:00, 19.0MB
sub-NTNU3_inv-1_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_T2starw.json:   0%|                       | 0.00/2.47k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-NTNU3_UNIT1.json:   0%|                         | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_T2starw.nii.gz:   0%|                     | 0.00/1.33M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined01_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_T2starw.nii.gz:  82%|█████████▊  | 1.09M/1.33M [00:00<00:00, 9.53MB/s]
                                                                                

sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/18.6M [00:00<?, ?B/s]
sub-NTNU3_UNIT1.nii.gz:   0%|                       | 0.00/25.8M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:   4%| | 714k/18.6M [00:00<00:02, 7.30MB
sub-NTNU3_inv-2_MP2RAGE.json:   0%|                 | 0.00/2.13k [00:00<?, ?B/s]



                                                                                

sub-NTNU3_UNIT1.nii.gz:   1%|▏              | 336k/25.8M [00:00<00:08, 3.00MB/s]
sub-NTNU3_rec-uncombined01_T2starw.nii.gz:  38%|▍| 408k/1.06M [00:00<00:00, 4.17
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  10%| | 1.81M/18.6M [00:00<00:01, 9.84M
                                                                                
sub-NTNU3_UNIT1.nii.gz:   5%|▋             | 1.36M/25.8M [00:00<00:03, 6.50MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|      | 0.00/20.4M [00:00<?, ?B/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.35M/18.6M [00:00<00:01, 12.7M
sub-NTNU3_rec-uncombined02_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU3_UNIT1.nii.gz:  13%|█▊            | 3.39M/25.8M [00:00<00:01, 12.6MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 629k/20.4M [00:00<00:03, 6.39MB




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




                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  28%|▎| 5.20M/18.6M [00:00<00:01, 13.9M



sub-NTNU3_rec-uncombined02_T2starw.nii.gz:  15%|▏| 152k/1.00M [00:00<00:00, 1.53
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   6%| | 1.23M/20.4M [00:00<00:03, 6.36M

sub-NTNU3_UNIT1.nii.gz:  18%|██▌           | 4.66M/25.8M [00:00<00:01, 12.2MB/s]
                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  36%|▎| 6.71M/18.6M [00:00<00:00, 14.5M



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



                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:   9%| | 1.84M/20.4M [00:00<00:03, 5.82M

sub-NTNU3_UNIT1.nii.gz:  23%|███▏          | 5.86M/25.8M [00:00<00:01, 11.3MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  44%|▍| 8.10M/18.6M [00:00<00:00, 13.0M
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 3.70M/20.4M [00:00<00:01, 10.9M



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



                                                                                

sub-NTNU3_UNIT1.nii.gz:  30%|████▏         | 7.66M/25.8M [00:00<00:01, 13.5MB/s]
sub-NTNU3_rec-uncombined03_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▌| 9.37M/18.6M [00:00<00:00, 12.6M
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  23%|▏| 4.77M/20.4M [00:00<00:01, 10.8M
sub-NTNU3_UNIT1.nii.gz:  35%|████▉         | 9.00M/25.8M [00:00<00:01, 12.7MB/s]



sub-NTNU3_rec-uncombined03_T2starw.nii.gz:  63%|▋| 663k/1.03M [00:00<00:00, 6.78




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




                                                                                
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  59%|▌| 10.9M/18.6M [00:00<00:00, 12.6M


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.84M/20.4M [00:00<00:01, 10.8M
                                                                                
sub-NTNU3_UNIT1.nii.gz:  40%|█████▌        | 10.3M/25.8M [00:00<00:01, 11.5MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 12.1M/18.6M [00:01<00:00, 12.5M


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  35%|▎| 7.13M/20.4M [00:00<00:01, 11.6M
sub-NTNU3_rec-uncombined04_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]

sub-NTNU3_UNIT1.nii.gz:  47%|██████▋       | 12.2M/25.8M [00:01<00:01, 13.9MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 14.1M/18.6M [00:01<00:00, 14.9M


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  45%|▍| 9.12M/20.4M [00:00<00:00, 14.4M
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:   0%|    | 0.00/1.03M [00:00<?, ?B/s]
sub-NTNU3_UNIT1.nii.gz:  54%|███████▌      | 13.9M/25.8M [00:01<00:00, 15.0MB/s]



sub-NTNU3_rec-uncombined04_T2starw.nii.gz:  48%|▍| 492k/1.01M [00:00<00:00, 4.95
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  85%|▊| 15.7M/18.6M [00:01<00:00, 15.3M


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 10.7M/20.4M [00:00<00:00, 15.0M
sub-NTNU3_rec-uncombined06_T2starw.nii.gz:  37%|▎| 392k/1.03M [00:00<00:00, 3.99



                                                                                
sub-NTNU3_UNIT1.nii.gz:  60%|████████▎     | 15.4M/25.8M [00:01<00:00, 13.8MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz:  93%|▉| 17.2M/18.6M [00:01<00:00, 14.1M




sub-NTNU3_rec-uncombined06_T2starw.nii.gz:  95%|▉| 0.98M/1.03M [00:00<00:00, 5.3


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 12.1M/20.4M [00:01<00:00, 13.8M




                                                                                
sub-NTNU3_UNIT1.nii.gz:  65%|█████████     | 16.8M/25.8M [00:01<00:00, 13.7MB/s]
sub-NTNU3_inv-1_part-mag_MP2RAGE.nii.gz: 100%|▉| 18.5M/18.6M [00:01<00:00, 14.0M
                                                                                

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



sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 13.5M/20.4M [00:01<00:00, 12.8M
sub-NTNU3_UNIT1.nii.gz:  70%|█████████▊    | 18.1M/25.8M [00:01<00:00, 13.4MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  76%|▊| 15.4M/20.4M [00:01<00:00, 14.9M
sub-NTNU3_rec-uncombined05_T2starw.nii.gz:   0%|    | 0.00/1.02M [00:00<?, ?B/s]



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



                                                                                
sub-NTNU3_UNIT1.nii.gz:  79%|███████████   | 20.4M/25.8M [00:01<00:00, 15.8MB/s]



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



                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  83%|▊| 16.9M/20.4M [00:01<00:00, 14.3M
sub-NTNU3_rec-uncombined05_T2starw.nii.gz:  37%|▎| 385k/1.02M [00:00<00:00, 3.92
sub-NTNU3_UNIT1.nii.gz:  85%|███████████▉  | 22.0M/25.8M [00:01<00:00, 15.4MB/s]
                                                                                
sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 18.5M/20.4M [00:01<00:00, 14.4M
sub-NTNU3_rec-uncombined08_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
sub-NTNU3_UNIT1.nii.gz:  91%|████████████▋ | 23.4M/25.8M [00:01<00:00, 14.1MB/s]


sub-NTNU3_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 19.9M/20.4M [00:01<00:00, 14.5M


                                                                                
sub-NTNU3_rec-uncombined08_T2starw.nii.gz:  30%|▎| 305k/0.99M [00:00<00:00, 2.96


sub-NTNU3_rec-uncombined07_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
sub-NTNU3_UNIT1.nii.gz:  98%|█████████████▋| 25.3M/25.8M [00:01<00:00, 15.6MB/s]
                                                                                

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


sub-NTNU3_rec-uncombined07_T2starw.nii.gz:  25%|▏| 272k/1.08M [00:00<00:00, 2.73
                                                                                
sub-NTNU3_rec-uncombined09_T2starw.nii.gz:  14%|▏| 153k/1.08M [00:00<00:00, 1.55
sub-NTNU3_rec-uncombined11_T2starw.nii.gz:   0%|    | 0.00/1.11M [00:00<?, ?B/s]


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


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


                                                                                
sub-NTNU3_rec-uncombined09_T2starw.nii.gz:  83%|▊| 918k/1.08M [00:00<00:00, 5.22
                                                                                


sub-NTNU3_rec-uncombined11_T2starw.nii.gz:  27%|▎| 305k/1.11M [00:00<00:00, 2.40
                                                                                
sub-NTNU3_rec-uncombined13_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                

sub-NTNU3_rec-uncombined10_T2starw.nii.gz:   0%|    | 0.00/1.07M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined13_T2starw.nii.gz:   0%|    | 0.00/1.08M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined10_T2starw.nii.gz:  22%|▏| 238k/1.07M [00:00<00:00, 2.32


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


                                                                                
sub-NTNU3_rec-uncombined13_T2starw.nii.gz:  11%| | 118k/1.08M [00:00<00:00, 1.10


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



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



                                                                                
sub-NTNU3_rec-uncombined10_T2starw.nii.gz:  48%|▍| 526k/1.07M [00:00<00:00, 2.67
sub-NTNU3_rec-uncombined13_T2starw.nii.gz:  80%|▊| 883k/1.08M [00:00<00:00, 4.91
                                                                                
sub-NTNU3_rec-uncombined12_T2starw.nii.gz:  25%|▎| 288k/1.10M [00:00<00:00, 2.25

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


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


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


                                                                                
sub-NTNU3_rec-uncombined14_T2starw.nii.gz:  13%|▏| 152k/1.12M [00:00<00:00, 1.55
sub-NTNU3_rec-uncombined15_T2starw.nii.gz:  73%|▋| 816k/1.09M [00:00<00:00, 8.29


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


                                                                                
                                                                                
                                                                                

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

sub-NTNU3_rec-uncombined16_T2starw.nii.gz:   0%|    | 0.00/1.06M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined18_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined16_T2starw.nii.gz:  56%|▌| 612k/1.06M [00:00<00:00, 6.26
sub-NTNU3_rec-uncombined18_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]


sub-NTNU3_rec-uncombined17_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined18_T2starw.nii.gz:  35%|▎| 356k/0.98M [00:00<00:00, 3.63
sub-NTNU3_rec-uncombined20_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                



sub-NTNU3_rec-uncombined17_T2starw.nii.gz:  38%|▍| 390k/0.99M [00:00<00:00, 3.95
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:   0%|    | 0.00/1.01M [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined17_T2starw.nii.gz: 100%|█| 0.99M/0.99M [00:00<00:00, 5.3


                                                                                
sub-NTNU3_rec-uncombined19_T2starw.nii.gz:  11%| | 118k/1.01M [00:00<00:00, 1.20
sub-NTNU3_rec-uncombined20_T2starw.nii.gz:   0%|    | 0.00/0.99M [00:00<?, ?B/s]


sub-NTNU3_rec-uncombined21_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
                                                                                
sub-NTNU3_rec-uncombined20_T2starw.nii.gz:  31%|▎| 310k/0.99M [00:00<00:00, 3.01
                                                                                
sub-NTNU3_rec-uncombined24_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_rec-uncombined21_T2starw.nii.gz:   0%|    | 0.00/0.98M [00:00<?, ?B/s]

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


sub-NTNU3_rec-uncombined22_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]


                                                                                
sub-NTNU3_rec-uncombined23_T2starw.nii.gz:  55%|▌| 544k/994k [00:00<00:00, 5.56M
sub-NTNU3_rec-uncombined21_T2starw.nii.gz:  20%|▏| 203k/0.98M [00:00<00:00, 1.79

                                                                                
sub-NTNU3_rec-uncombined23_T2starw.json:   0%|      | 0.00/2.48k [00:00<?, ?B/s]

                                                                                
sub-NTNU3_rec-uncombined22_T2starw.nii.gz:   0%|    | 0.00/1.00M [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined21_T2starw.nii.gz: 100%|▉| 0.98M/0.98M [00:00<00:00, 5.3
                                                                                
sub-NTNU3_acq-anat_TB1TFL.nii.gz:   0%|              | 0.00/834k [00:00<?, ?B/s]
sub-NTNU3_rec-uncombined22_T2starw.nii.gz:  30%|▎| 305k/1.00M [00:00<00:00, 2.91


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


                                                                                
sub-NTNU3_acq-anat_TB1TFL.nii.gz:  75%|████▌ | 628k/834k [00:00<00:00, 5.55MB/s]


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


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

sub-NTNU3_rec-uncombined22_T2starw.nii.gz:  86%|▊| 883k/1.00M [00:00<00:00, 4.62
                                                                                


                                                                                
sub-NTNU3_rec-uncombined24_T2starw.nii.gz:  47%|▍| 476k/1.00M [00:00<00:00, 4.87


                                                                                
sub-NTNU3_acq-coilQaSagSmall_GFactor.json:   0%|    | 0.00/2.23k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:   0%|      | 0.00/4.09M [00:00<?, ?B/s]
sub-NTNU3_acq-famp-0.66_TB1DREAM.json:   0%|        | 0.00/2.19k [00:00<?, ?B/s]

                                                                                

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



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



                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:   3%| | 136k/4.09M [00:00<00:03, 1.20MB
sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:   9%| | 323k/3.62M [00:00<00:01, 3.
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   1%| | 224k/15.6M [00:00<00:07, 2.13MB/



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



                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  36%|▎| 1.48M/4.09M [00:00<00:00, 7.27M



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



                                                                                

sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 1.25M/3.62M [00:00<00:00, 6
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:   4%| | 615k/15.6M [00:00<00:04, 3.19MB/
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  53%|▌| 2.18M/4.09M [00:00<00:00, 7.31M

sub-NTNU3_acq-coilQaSagSmall_GFactor.nii.gz:  55%|▌| 1.98M/3.62M [00:00<00:00, 7
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  11%| | 1.75M/15.6M [00:00<00:02, 7.15MB



sub-NTNU3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/88.1k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-coilQaSagLarge_SNR.nii.gz:  89%|▉| 3.64M/4.09M [00:00<00:00, 9.57M



                                                                                

sub-NTNU3_acq-famp_TB1TFL.nii.gz:   0%|              | 0.00/955k [00:00<?, ?B/s]
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  17%|▏| 2.64M/15.6M [00:00<00:01, 7.79MB
                                                                                
sub-NTNU3_acq-famp_TB1TFL.nii.gz:  44%|██▋   | 424k/955k [00:00<00:00, 4.31MB/s]
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  28%|▎| 4.31M/15.6M [00:00<00:01, 11.2MB

                                                                                
sub-UCL1_T2starw.json:   0%|                        | 0.00/2.48k [00:00<?, ?B/s]
                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  40%|▍| 6.25M/15.6M [00:00<00:00, 14.1MB
sub-NTNU3_acq-famp_TB1DREAM.nii.gz:   0%|           | 0.00/89.3k [00:00<?, ?B/s]

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

                                                                                
                                                                                
sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  49%|▍| 7.61M/15.6M [00:00<00:00, 14.0MB
sub-NTNU3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|      | 0.00/84.4k [00:00<?, ?B/s]
                                                                                



sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  76%|▊| 11.9M/15.6M [00:00<00:00, 22.5MB
sub-NTNU3_acq-refv_TB1DREAM.nii.gz:   0%|           | 0.00/89.6k [00:00<?, ?B/s]
sub-UCL1_UNIT1.json:   0%|                          | 0.00/2.12k [00:00<?, ?B/s]

                                                                                
                                                                                



sub-NTNU3_acq-coilQaTra_GFactor.nii.gz:  90%|▉| 14.0M/15.6M [00:00<00:00, 22.0MB
                                                                                
sub-UCL1_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.12k [00:00<?, ?B/s]
                                                                                
sub-UCL1_T2starw.nii.gz:   0%|                      | 0.00/1.06M [00:00<?, ?B/s]
sub-UCL1_T2starw.nii.gz:  28%|███▉          | 305k/1.06M [00:00<00:00, 3.05MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/15.4M [00:00<?, ?B/s]


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


                                                                                
                                                                                

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


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.0M [00:00<?, ?B/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:   2%| | 339k/15.4M [00:00<00:04, 3.47MB/
sub-UCL1_UNIT1.nii.gz:   3%|▍               | 715k/26.5M [00:00<00:03, 7.32MB/s]


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 544k/17.0M [00:00<00:03, 5.57MB/
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  14%|▏| 2.13M/15.4M [00:00<00:01, 12.4MB



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



                                                                                
sub-UCL1_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/889k [00:00<?, ?B/s]
sub-UCL1_UNIT1.nii.gz:   5%|▊              | 1.41M/26.5M [00:00<00:03, 7.40MB/s]


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.26M/17.0M [00:00<00:02, 6.77MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.32M/15.4M [00:00<00:01, 12.4MB
sub-UCL1_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]




                                                                                


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  12%| | 2.04M/17.0M [00:00<00:02, 7.06MB



sub-UCL1_rec-uncombined1_T2starw.nii.gz:  38%|▍| 340k/889k [00:00<00:00, 3.06MB/
sub-UCL1_UNIT1.nii.gz:  10%|█▍             | 2.57M/26.5M [00:00<00:02, 9.02MB/s]
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  29%|▎| 4.51M/15.4M [00:00<00:00, 12.2MB
                                                                                
sub-UCL1_UNIT1.nii.gz:  14%|██             | 3.68M/26.5M [00:00<00:02, 10.0MB/s]


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.72M/17.0M [00:00<00:02, 7.00MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  37%|▎| 5.68M/15.4M [00:00<00:00, 12.2MB



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



                                                                                
sub-UCL1_UNIT1.nii.gz:  18%|██▊            | 4.90M/26.5M [00:00<00:02, 11.0MB/s]


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  22%|▏| 3.76M/17.0M [00:00<00:01, 8.34MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  45%|▍| 6.93M/15.4M [00:00<00:00, 12.4MB



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



                                                                                
sub-UCL1_UNIT1.nii.gz:  24%|███▌           | 6.23M/26.5M [00:00<00:01, 11.9MB/s]


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  30%|▎| 5.10M/17.0M [00:00<00:01, 10.2MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  54%|▌| 8.27M/15.4M [00:00<00:00, 13.0MB



sub-UCL1_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/883k [00:00<?, ?B/s]
sub-UCL1_UNIT1.nii.gz:  30%|████▍          | 7.90M/26.5M [00:00<00:01, 13.7MB/s]


sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  40%|▍| 6.79M/17.0M [00:00<00:00, 12.6MB
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  65%|▋| 9.93M/15.4M [00:00<00:00, 14.3MB



sub-UCL1_rec-uncombined2_T2starw.nii.gz:  56%|▌| 492k/883k [00:00<00:00, 5.03MB/




sub-UCL1_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/871k [00:00<?, ?B/s]
                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  47%|▍| 8.01M/17.0M [00:00<00:00, 12.2MB
sub-UCL1_UNIT1.nii.gz:  35%|█████▏         | 9.23M/26.5M [00:00<00:01, 13.0MB/s]

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  74%|▋| 11.3M/15.4M [00:00<00:00, 13.4MB




sub-UCL1_rec-uncombined3_T2starw.nii.gz:  53%|▌| 458k/871k [00:00<00:00, 4.66MB/
                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  55%|▌| 9.34M/17.0M [00:00<00:00, 12.1MB
sub-UCL1_UNIT1.nii.gz:  40%|█████▉         | 10.5M/26.5M [00:00<00:01, 12.6MB/s]

sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  82%|▊| 12.6M/15.4M [00:01<00:00, 13.0MB
sub-UCL1_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/810k [00:00<?, ?B/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  66%|▋| 11.2M/17.0M [00:01<00:00, 14.3MB
sub-UCL1_UNIT1.nii.gz:  47%|███████        | 12.4M/26.5M [00:01<00:00, 14.8MB/s]




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




                                                                                
sub-UCL1_inv-1_part-mag_MP2RAGE.nii.gz:  94%|▉| 14.4M/15.4M [00:01<00:00, 13.6MB



sub-UCL1_rec-uncombined4_T2starw.nii.gz:  25%|▎| 204k/810k [00:00<00:00, 2.08MB/
                                                                                
                                                                                

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

                                                                                
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  74%|▋| 12.6M/17.0M [00:01<00:00, 10.8MB
sub-UCL1_UNIT1.nii.gz:  52%|███████▊       | 13.9M/26.5M [00:01<00:01, 11.3MB/s]
sub-UCL1_inv-2_part-mag_MP2RAGE.nii.gz:  90%|▉| 15.4M/17.0M [00:01<00:00, 15.2MB
sub-UCL1_UNIT1.nii.gz:  63%|█████████▍     | 16.7M/26.5M [00:01<00:00, 15.6MB/s]
sub-UCL1_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/862k [00:00<?, ?B/s]



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



                                                                                
                                                                                
sub-UCL1_UNIT1.nii.gz:  69%|██████████▍    | 18.3M/26.5M [00:01<00:00, 15.4MB/s]
sub-UCL1_rec-uncombined6_T2starw.nii.gz:  37%|▎| 322k/862k [00:00<00:00, 2.99MB/
                                                                                

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

                                                                                
sub-UCL1_UNIT1.nii.gz:  77%|███████████▌   | 20.4M/26.5M [00:01<00:00, 15.9MB/s]

sub-UCL1_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/897k [00:00<?, ?B/s]
sub-UCL1_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/855k [00:00<?, ?B/s]
sub-UCL1_UNIT1.nii.gz:  90%|█████████████▍ | 23.7M/26.5M [00:01<00:00, 20.9MB/s]

sub-UCL1_rec-uncombined5_T2starw.nii.gz:  70%|▋| 628k/897k [00:00<00:00, 6.40MB/

                                                                                
sub-UCL1_rec-uncombined8_T2starw.nii.gz:  34%|▎| 288k/855k [00:00<00:00, 2.64MB/

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



sub-UCL1_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/886k [00:00<?, ?B/s]
                                                                                
sub-UCL1_UNIT1.nii.gz:  98%|██████████████▋| 25.9M/26.5M [00:01<00:00, 18.8MB/s]

sub-UCL1_rec-uncombined7_T2starw.nii.gz:  90%|▉| 747k/828k [00:00<00:00, 7.61MB/
                                                                                
                                                                                



sub-UCL1_acq-anat_TB1TFL.nii.gz:  32%|██▎    | 288k/886k [00:00<00:00, 2.30MB/s]
sub-UCL1_acq-anat_TB1TFL.json:   0%|                | 0.00/2.66k [00:00<?, ?B/s]
                                                                                

sub-UCL1_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.49k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-anat_TB1TFL.nii.gz:  59%|████▏  | 526k/886k [00:00<00:00, 2.36MB/s]



                                                                                
sub-UCL1_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.10k [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_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.20k [00:00<?, ?B/s]

                                                                                
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  17%|▏| 714k/4.19M [00:00<00:00, 7.21MB/
sub-UCL1_acq-famp-0.66_TB1DREAM.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]

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


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


                                                                                
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  41%|▍| 1.73M/4.19M [00:00<00:00, 8.82MB
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  34%|▎| 934k/2.69M [00:00<00:00, 9.5


sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/11.7M [00:00<?, ?B/s]
sub-UCL1_acq-coilQaSagLarge_SNR.nii.gz:  90%|▉| 3.75M/4.19M [00:00<00:00, 14.3MB
                                                                                

sub-UCL1_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/93.0k [00:00<?, ?B/s]
sub-UCL1_acq-coilQaSagSmall_GFactor.nii.gz:  92%|▉| 2.48M/2.69M [00:00<00:00, 13
                                                                                



sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   1%| | 83.6k/11.7M [00:00<00:14, 835kB/s
sub-UCL1_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.9k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-UCL1_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.15k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:   3%| | 356k/11.7M [00:00<00:06, 1.82MB/s
sub-UCL1_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/93.1k [00:00<?, ?B/s]
sub-UCL1_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.17k [00:00<?, ?B/s]

                                                                                


sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  33%|▎| 3.86M/11.7M [00:00<00:00, 15.2MB/
                                                                                
sub-UCL1_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/943k [00:00<?, ?B/s]

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

                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  44%|▍| 5.22M/11.7M [00:00<00:00, 14.0MB/
                                                                                
sub-UCL1_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.17k [00:00<?, ?B/s]
                                                                                
sub-UCL1_acq-coilQaTra_GFactor.nii.gz:  68%|▋| 7.97M/11.7M [00:00<00:00, 17.4MB/
sub-UCL1_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.16k [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:  88%|▉| 10.3M/11.7M [00:00<00:00, 18.8MB/
                                                                                
sub-UCL2_T2starw.json:   0%|                        | 0.00/2.44k [00:00<?, ?B/s]
                                                                                

sub-UCL1_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]
sub-UCL1_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/89.4k [00:00<?, ?B/s]
                                                                                
sub-UCL2_inv-1_MP2RAGE.json:   0%|                  | 0.00/2.09k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-UCL2_UNIT1.json:   0%|                          | 0.00/2.08k [00:00<?, ?B/s]
                                                                                
sub-UCL2_T2starw.nii.gz:   0%|                      | 0.00/1.02M [00:00<?, ?B/s]
                                                                                
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/13.6M [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:   0%|                        | 0.00/26.7M [00:00<?, ?B/s]


sub-UCL2_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.09k [00:00<?, ?B/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:   6%| | 783k/13.6M [00:00<00:01, 8.02MB/
sub-UCL2_UNIT1.nii.gz:   0%|                | 130k/26.7M [00:00<00:23, 1.17MB/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:   2%| | 237k/15.3M [00:00<00:06, 2.40MB/



sub-UCL2_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/832k [00:00<?, ?B/s]
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  15%|▏| 1.99M/13.6M [00:00<00:01, 10.9MB
sub-UCL2_UNIT1.nii.gz:   3%|▍               | 765k/26.7M [00:00<00:06, 4.12MB/s]
sub-UCL2_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]




                                                                                


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.06M/15.3M [00:00<00:02, 5.48MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  23%|▏| 3.08M/13.6M [00:00<00:01, 11.0MB



sub-UCL2_rec-uncombined1_T2starw.nii.gz:  37%|▎| 305k/832k [00:00<00:00, 2.80MB/
sub-UCL2_UNIT1.nii.gz:   5%|▊              | 1.40M/26.7M [00:00<00:05, 5.29MB/s]
                                                                                


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.66M/15.3M [00:00<00:02, 5.81MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  31%|▎| 4.14M/13.6M [00:00<00:00, 11.0MB
sub-UCL2_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]

sub-UCL2_UNIT1.nii.gz:   8%|█▏             | 2.08M/26.7M [00:00<00:04, 5.99MB/s]



                                                                                
sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  18%|▏| 2.73M/15.3M [00:00<00:01, 7.88MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  39%|▍| 5.34M/13.6M [00:00<00:00, 11.6MB
sub-UCL2_UNIT1.nii.gz:  12%|█▊             | 3.15M/26.7M [00:00<00:03, 7.85MB/s]
sub-UCL2_rec-uncombined4_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  53%|▌| 7.22M/13.6M [00:00<00:00, 12.8MB

sub-UCL2_UNIT1.nii.gz:  17%|██▌            | 4.62M/26.7M [00:00<00:02, 9.95MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  31%|▎| 4.69M/15.3M [00:00<00:01, 10.9MB



sub-UCL2_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/786k [00:00<?, ?B/s]
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  66%|▋| 8.91M/13.6M [00:00<00:00, 14.2MB

sub-UCL2_UNIT1.nii.gz:  24%|███▌           | 6.29M/26.7M [00:00<00:01, 12.3MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  42%|▍| 6.34M/15.3M [00:00<00:00, 12.9MB



sub-UCL2_rec-uncombined2_T2starw.nii.gz:  47%|▍| 373k/786k [00:00<00:00, 3.78MB/
                                                                                
sub-UCL2_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/797k [00:00<?, ?B/s]

sub-UCL2_UNIT1.nii.gz:  28%|████▏          | 7.48M/26.7M [00:00<00:01, 12.2MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  50%|▍| 7.56M/15.3M [00:00<00:00, 12.6MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  76%|▊| 10.3M/13.6M [00:00<00:00, 13.6MB
sub-UCL2_rec-uncombined3_T2starw.nii.gz:  60%|▌| 476k/797k [00:00<00:00, 4.87MB/

sub-UCL2_UNIT1.nii.gz:  34%|█████▏         | 9.17M/26.7M [00:00<00:01, 13.8MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  61%|▌| 9.27M/15.3M [00:00<00:00, 14.1MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 11.9M/13.6M [00:00<00:00, 14.7MB
                                                                                



sub-UCL2_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/751k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  39%|█████▉         | 10.5M/26.7M [00:01<00:01, 13.6MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  70%|▋| 10.6M/15.3M [00:00<00:00, 13.8MB
sub-UCL2_inv-1_part-mag_MP2RAGE.nii.gz:  98%|▉| 13.3M/13.6M [00:01<00:00, 14.1MB
                                                                                




sub-UCL2_rec-uncombined4_T2starw.nii.gz:  61%|▌| 458k/751k [00:00<00:00, 4.35MB/
                                                                                
sub-UCL2_UNIT1.nii.gz:  44%|██████▋        | 11.8M/26.7M [00:01<00:01, 12.3MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  78%|▊| 12.0M/15.3M [00:01<00:00, 12.6MB
sub-UCL2_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/880k [00:00<?, ?B/s]



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

sub-UCL2_UNIT1.nii.gz:  55%|████████▏      | 14.7M/26.7M [00:01<00:00, 17.2MB/s]


sub-UCL2_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 14.8M/15.3M [00:01<00:00, 17.3MB


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


                                                                                
sub-UCL2_rec-uncombined5_T2starw.nii.gz:  15%|▏| 135k/880k [00:00<00:00, 1.37MB/



sub-UCL2_rec-uncombined6_T2starw.nii.gz:  14%|▏| 119k/860k [00:00<00:00, 1.21MB/
sub-UCL2_UNIT1.nii.gz:  61%|█████████▏     | 16.4M/26.7M [00:01<00:00, 15.4MB/s]



                                                                                
                                                                                
sub-UCL2_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL2_rec-uncombined7_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                
sub-UCL2_UNIT1.nii.gz:  67%|██████████     | 17.9M/26.7M [00:01<00:00, 12.7MB/s]
sub-UCL2_rec-uncombined8_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]
                                                                                

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


sub-UCL2_UNIT1.nii.gz:  81%|████████████▏  | 21.7M/26.7M [00:01<00:00, 18.7MB/s]
sub-UCL2_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/814k [00:00<?, ?B/s]


sub-UCL2_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/802k [00:00<?, ?B/s]
sub-UCL2_UNIT1.nii.gz:  91%|█████████████▋ | 24.4M/26.7M [00:01<00:00, 21.2MB/s]
                                                                                
sub-UCL2_rec-uncombined7_T2starw.nii.gz:  34%|▎| 272k/802k [00:00<00:00, 2.56MB/
sub-UCL2_acq-coilQaSagSmall_GFactor.json:   0%|     | 0.00/2.17k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/3.92M [00:00<?, ?B/s]

sub-UCL2_UNIT1.nii.gz: 100%|██████████████▉| 26.6M/26.7M [00:01<00:00, 18.5MB/s]

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

                                                                                
sub-UCL2_acq-coilQaSagLarge_SNR.nii.gz:   8%| | 339k/3.92M [00:00<00:01, 3.46MB/
sub-UCL2_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/797k [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:  85%|▊| 3.33M/3.92M [00:00<00:00, 19.9MB
                                                                                

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



sub-UCL2_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.4k [00:00<?, ?B/s]
                                                                                
sub-UCL2_acq-anat_TB1TFL.nii.gz:  17%|█▏     | 135k/797k [00:00<00:00, 1.30MB/s]



                                                                                
sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:   5%| | 135k/2.68M [00:00<00:02, 1.1
                                                                                
sub-UCL2_acq-coilQaSagSmall_GFactor.nii.gz:  63%|▋| 1.69M/2.68M [00:00<00:00, 9.
sub-UCL2_acq-coilQaTra_GFactor.json:   0%|          | 0.00/2.06k [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:   0%|        | 0.00/11.7M [00:00<?, ?B/s]
sub-UCL2_acq-famp-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.1k [00:00<?, ?B/s]


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


                                                                                
                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:   2%| | 186k/11.7M [00:00<00:06, 1.84MB/s
sub-UCL2_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.1k [00:00<?, ?B/s]

                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  27%|▎| 3.19M/11.7M [00:00<00:00, 16.0MB/

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


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


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


                                                                                
sub-UCL2_acq-famp_TB1TFL.nii.gz:  34%|██▎    | 323k/952k [00:00<00:00, 3.29MB/s]
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  39%|▍| 4.61M/11.7M [00:00<00:00, 15.1MB/
                                                                                
sub-UCL2_acq-refv-1.5_TB1DREAM.json:   0%|          | 0.00/2.14k [00:00<?, ?B/s]

                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  51%|▌| 5.99M/11.7M [00:00<00:00, 14.7MB/
sub-UCL2_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/80.0k [00:00<?, ?B/s]


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

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

                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  77%|▊| 9.05M/11.7M [00:00<00:00, 18.9MB/


                                                                                

sub-UCL3_T2starw.json:   0%|                        | 0.00/2.44k [00:00<?, ?B/s]
                                                                                
sub-UCL2_acq-coilQaTra_GFactor.nii.gz:  92%|▉| 10.8M/11.7M [00:00<00:00, 18.3MB/
                                                                                
sub-UCL3_T2starw.nii.gz:   0%|                      | 0.00/1.06M [00:00<?, ?B/s]

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

                                                                                
sub-UCL3_UNIT1.nii.gz:   0%|                        | 0.00/26.3M [00:00<?, ?B/s]
sub-UCL3_T2starw.nii.gz:  47%|██████▌       | 510k/1.06M [00:00<00:00, 5.21MB/s]


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


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



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



                                                                                
sub-UCL3_UNIT1.nii.gz:   1%|                | 153k/26.3M [00:00<00:19, 1.38MB/s]


                                                                                
sub-UCL3_T2starw.nii.gz:  94%|████████████▏| 1.00M/1.06M [00:00<00:00, 4.41MB/s]
                                                                                
sub-UCL3_UNIT1.nii.gz:   3%|▍               | 713k/26.3M [00:00<00:07, 3.81MB/s]
sub-UCL3_inv-2_MP2RAGE.json:   0%|                  | 0.00/2.13k [00:00<?, ?B/s]
                                                                                
sub-UCL3_UNIT1.nii.gz:  16%|██▍            | 4.28M/26.3M [00:00<00:01, 17.5MB/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/17.6M [00:00<?, ?B/s]


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   0%|       | 0.00/16.1M [00:00<?, ?B/s]
sub-UCL3_rec-uncombined1_T2starw.nii.gz:   0%|       | 0.00/877k [00:00<?, ?B/s]
sub-UCL3_UNIT1.nii.gz:  28%|████▏          | 7.42M/26.3M [00:00<00:00, 23.1MB/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   3%| | 562k/17.6M [00:00<00:03, 5.76MB/


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   3%| | 458k/16.1M [00:00<00:03, 4.65MB/
sub-UCL3_rec-uncombined1_T2starw.nii.gz:  64%|▋| 561k/877k [00:00<00:00, 5.72MB/



                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:   7%| | 1.16M/17.6M [00:00<00:02, 6.09MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:   7%| | 1.06M/16.1M [00:00<00:02, 5.69MB
sub-UCL3_rec-uncombined3_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL3_UNIT1.nii.gz:  37%|█████▍         | 9.62M/26.3M [00:00<00:01, 17.0MB/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  11%| | 1.96M/17.6M [00:00<00:02, 7.08MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  11%| | 1.81M/16.1M [00:00<00:02, 6.66MB
sub-UCL3_rec-uncombined2_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  19%|▏| 3.30M/17.6M [00:00<00:01, 9.82MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  16%|▏| 2.56M/16.1M [00:00<00:01, 7.13MB

sub-UCL3_UNIT1.nii.gz:  43%|██████▌        | 11.4M/26.3M [00:00<00:00, 16.4MB/s]
sub-UCL3_rec-uncombined2_T2starw.nii.gz:   0%|       | 0.00/849k [00:00<?, ?B/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  29%|▎| 5.16M/17.6M [00:00<00:00, 13.3MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  25%|▎| 4.05M/16.1M [00:00<00:01, 10.2MB

sub-UCL3_UNIT1.nii.gz:  50%|███████▌       | 13.2M/26.3M [00:00<00:00, 17.1MB/s]
sub-UCL3_rec-uncombined2_T2starw.nii.gz:  42%|▍| 357k/849k [00:00<00:00, 3.65MB/




sub-UCL3_rec-uncombined3_T2starw.nii.gz:   0%|       | 0.00/861k [00:00<?, ?B/s]
                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  38%|▍| 6.64M/17.6M [00:00<00:00, 12.9MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  34%|▎| 5.41M/16.1M [00:00<00:01, 10.9MB




sub-UCL3_rec-uncombined3_T2starw.nii.gz:  32%|▎| 272k/861k [00:00<00:00, 2.77MB/

sub-UCL3_UNIT1.nii.gz:  57%|████████▌      | 15.0M/26.3M [00:01<00:00, 15.5MB/s]
                                                                                
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  45%|▍| 7.92M/17.6M [00:00<00:00, 12.5MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  42%|▍| 6.68M/16.1M [00:00<00:00, 11.1MB



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



                                                                                
sub-UCL3_UNIT1.nii.gz:  63%|█████████▍     | 16.5M/26.3M [00:01<00:00, 13.8MB/s]
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  52%|▌| 9.22M/17.6M [00:00<00:00, 12.8MB


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  50%|▍| 7.98M/16.1M [00:00<00:00, 11.8MB
sub-UCL3_rec-uncombined6_T2starw.json:   0%|        | 0.00/2.45k [00:00<?, ?B/s]



                                                                                

sub-UCL3_UNIT1.nii.gz:  69%|██████████▎    | 18.1M/26.3M [00:01<00:00, 14.1MB/s]



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



                                                                                
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  57%|▌| 9.12M/16.1M [00:00<00:00, 11.2MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  59%|▌| 10.5M/17.6M [00:00<00:00, 12.0MB
sub-UCL3_UNIT1.nii.gz:  74%|███████████    | 19.5M/26.3M [00:01<00:00, 14.0MB/s]
sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  68%|▋| 11.0M/16.1M [00:01<00:00, 13.6MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  71%|▋| 12.4M/17.6M [00:01<00:00, 14.5MB
sub-UCL3_rec-uncombined5_T2starw.nii.gz:   0%|       | 0.00/875k [00:00<?, ?B/s]

sub-UCL3_UNIT1.nii.gz:  81%|████████████   | 21.2M/26.3M [00:01<00:00, 15.2MB/s]
sub-UCL3_rec-uncombined4_T2starw.nii.gz:   0%|       | 0.00/801k [00:00<?, ?B/s]


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  79%|▊| 12.7M/16.1M [00:01<00:00, 14.7MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  80%|▊| 14.1M/17.6M [00:01<00:00, 15.3MB
sub-UCL3_rec-uncombined5_T2starw.nii.gz:  29%|▎| 254k/875k [00:00<00:00, 2.57MB/

sub-UCL3_UNIT1.nii.gz:  87%|█████████████  | 22.9M/26.3M [00:01<00:00, 15.7MB/s]
sub-UCL3_rec-uncombined4_T2starw.nii.gz:  55%|▌| 442k/801k [00:00<00:00, 4.52MB/


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  88%|▉| 14.1M/16.1M [00:01<00:00, 14.8MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  88%|▉| 15.6M/17.6M [00:01<00:00, 15.3MB
                                                                                



                                                                                
sub-UCL3_UNIT1.nii.gz:  93%|█████████████▉ | 24.4M/26.3M [00:01<00:00, 13.6MB/s]


sub-UCL3_inv-1_part-mag_MP2RAGE.nii.gz:  97%|▉| 15.5M/16.1M [00:01<00:00, 13.1MB
sub-UCL3_inv-2_part-mag_MP2RAGE.nii.gz:  97%|▉| 17.1M/17.6M [00:01<00:00, 13.5MB


                                                                                



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


                                                                                
                                                                                

sub-UCL3_rec-uncombined6_T2starw.nii.gz:   0%|       | 0.00/856k [00:00<?, ?B/s]
sub-UCL3_UNIT1.nii.gz:  98%|██████████████▋| 25.8M/26.3M [00:01<00:00, 12.2MB/s]

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

                                                                                
sub-UCL3_rec-uncombined6_T2starw.nii.gz:  83%|▊| 713k/856k [00:00<00:00, 5.72MB/
                                                                                
sub-UCL3_acq-anat_TB1TFL.json:   0%|                | 0.00/2.67k [00:00<?, ?B/s]
                                                                                

sub-UCL3_rec-uncombined8_T2starw.nii.gz:   0%|       | 0.00/860k [00:00<?, ?B/s]
sub-UCL3_rec-uncombined7_T2starw.nii.gz:   0%|       | 0.00/808k [00:00<?, ?B/s]
sub-UCL3_rec-uncombined8_T2starw.nii.gz:  61%|▌| 527k/860k [00:00<00:00, 5.38MB/


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


                                                                                
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:   0%|       | 0.00/4.17M [00:00<?, ?B/s]
                                                                                
sub-UCL3_rec-uncombined7_T2starw.nii.gz:  52%|▌| 424k/808k [00:00<00:00, 3.57MB/
sub-UCL3_acq-anat_TB1TFL.nii.gz:   0%|               | 0.00/859k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:   6%| | 271k/4.17M [00:00<00:01, 2.77MB/
sub-UCL3_acq-anat_TB1TFL.nii.gz:  30%|██     | 254k/859k [00:00<00:00, 2.59MB/s]

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

                                                                                
sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  31%|▎| 1.29M/4.17M [00:00<00:00, 7.44MB
                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   0%|        | 0.00/11.7M [00:00<?, ?B/s]


sub-UCL3_acq-coilQaSagLarge_SNR.nii.gz:  83%|▊| 3.48M/4.17M [00:00<00:00, 14.5MB

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

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


                                                                                
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:   3%| | 305k/11.7M [00:00<00:04, 2.92MB/s
sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  13%|▏| 356k/2.68M [00:00<00:00, 3.4
sub-UCL3_acq-famp-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/92.4k [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:  20%|▏| 2.37M/11.7M [00:00<00:00, 13.7MB/



                                                                                
                                                                                

sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  43%|▍| 1.16M/2.68M [00:00<00:00, 5.


sub-UCL3_acq-famp_TB1DREAM.nii.gz:   0%|            | 0.00/92.9k [00:00<?, ?B/s]
                                                                                
sub-UCL3_acq-coilQaSagSmall_GFactor.nii.gz:  85%|▊| 2.27M/2.68M [00:00<00:00, 8.
sub-UCL3_acq-coilQaTra_GFactor.nii.gz:  32%|▎| 3.71M/11.7M [00:00<00:00, 10.3MB/
                                                                                

sub-UCL3_acq-famp_TB1DREAM.json:   0%|              | 0.00/2.14k [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:  44%|▍| 5.21M/11.7M [00:00<00:00, 12.1MB/
sub-UCL3_acq-famp_TB1TFL.json:   0%|                | 0.00/2.71k [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:  55%|▌| 6.46M/11.7M [00:00<00:00, 11.5MB/
sub-UCL3_acq-refv-0.66_TB1DREAM.json:   0%|         | 0.00/2.16k [00:00<?, ?B/s]

                                                                                
sub-UCL3_acq-famp_TB1TFL.nii.gz:   0%|               | 0.00/949k [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:  86%|▊| 10.1M/11.7M [00:00<00:00, 17.8MB/


sub-UCL3_acq-refv-1.5_TB1DREAM.nii.gz:   0%|        | 0.00/92.7k [00:00<?, ?B/s]
                                                                                
sub-UCL3_acq-famp_TB1TFL.nii.gz:  29%|█▉     | 271k/949k [00:00<00:00, 2.39MB/s]


                                                                                

                                                                                
sub-UCL3_acq-refv_TB1DREAM.nii.gz:   0%|            | 0.00/92.2k [00:00<?, ?B/s]
sub-UCL3_acq-refv-0.66_TB1DREAM.nii.gz:   0%|       | 0.00/87.9k [00:00<?, ?B/s]
                                                                                
                                                                                
sub-UCL3_acq-refv_TB1DREAM.json:   0%|              | 0.00/2.16k [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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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:   4%|█▎                              | 17.5M/431M [00:00<00:02, 175MB/s]
Status:   8%|██▋                             | 35.7M/431M [00:00<00:02, 179MB/s]
Status:  13%|████▎                           | 57.7M/431M [00:00<00:01, 198MB/s]
Status:  18%|█████▉                          | 79.6M/431M [00:00<00:01, 206MB/s]
Status:  23%|███████▋                         | 101M/431M [00:00<00:01, 208MB/s]
Status:  28%|█████████▎                       | 122M/431M [00:00<00:01, 203MB/s]
Status:  33%|██████████▊                      | 142M/431M [00:00<00:01, 203MB/s]
Status:  38%|████████████▍                    | 162M/431M [00:00<00:01, 198MB/s]
Status:  42%|█████████████▉                   | 182M/431M [00:00<00:01, 190MB/s]
Status:  47%|███████████████▍                 | 202M/431M [00:01<00:01, 191MB/s]
Status:  51%|████████████████▉                | 221M/431M [00:01<00:01, 192MB/s]
Status:  56%|██████████████████▍              | 241M/431M [00:01<00:00, 194MB/s]
Status:  60%|███████████████████▉             | 261M/431M [00:01<00:00, 189MB/s]
Status:  65%|█████████████████████▌           | 281M/431M [00:01<00:00, 194MB/s]
Status:  70%|███████████████████████          | 301M/431M [00:01<00:00, 183MB/s]
Status:  74%|████████████████████████▍        | 319M/431M [00:01<00:00, 163MB/s]
Status:  78%|█████████████████████████▉       | 338M/431M [00:01<00:00, 171MB/s]
Status:  83%|███████████████████████████▌     | 360M/431M [00:01<00:00, 182MB/s]
Status:  88%|████████████████████████████▉    | 378M/431M [00:02<00:00, 181MB/s]
Status:  92%|██████████████████████████████▍  | 398M/431M [00:02<00:00, 184MB/s]
Status:  97%|███████████████████████████████▉ | 418M/431M [00:02<00:00, 185MB/s]
Status: 100%|█████████████████████████████████| 431M/431M [00:02<00:00, 187MB/s]
Creating temporary folder (/tmp/sct_2024-11-05_20-09-15_install-data_3yxuemzk)
Unzip data to: /tmp/sct_2024-11-05_20-09-15_install-data_3yxuemzk
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-05_20-09-23_sct_deepseg_ky078vnc)
Copied sub-CRMBM1_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-09-23_sct_deepseg_ky078vnc/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-05_20-09-23_sct_deepseg_ky078vnc/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_05_200939.502141.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-09-51_sct_deepseg_r0xdeeee)
Copied sub-CRMBM2_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-09-51_sct_deepseg_r0xdeeee/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-05_20-09-51_sct_deepseg_r0xdeeee/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_05_201007.399659.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-10-19_sct_deepseg_48bzu09o)
Copied sub-CRMBM3_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-10-19_sct_deepseg_48bzu09o/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-05_20-10-19_sct_deepseg_48bzu09o/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_05_201035.327796.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-10-46_sct_deepseg_jm0lkkka)
Copied sub-MGH1_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-10-46_sct_deepseg_jm0lkkka/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-05_20-10-46_sct_deepseg_jm0lkkka/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_05_201059.472083.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-11-11_sct_deepseg_03z2cqsm)
Copied sub-MGH2_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-11-11_sct_deepseg_03z2cqsm/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-05_20-11-11_sct_deepseg_03z2cqsm/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_05_201124.241888.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-11-36_sct_deepseg_l0ue20_2)
Copied sub-MGH3_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-11-36_sct_deepseg_l0ue20_2/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) 12 seconds
Saving results to: /tmp/sct_2024-11-05_20-11-36_sct_deepseg_l0ue20_2/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_05_201149.213316.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-12-01_sct_deepseg_r4at5fef)
Copied sub-MNI1_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-12-01_sct_deepseg_r4at5fef/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-05_20-12-01_sct_deepseg_r4at5fef/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_05_201218.041967.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-12-29_sct_deepseg_kplmihas)
Copied sub-MNI2_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-12-29_sct_deepseg_kplmihas/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-05_20-12-29_sct_deepseg_kplmihas/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_05_201246.027691.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-12-57_sct_deepseg_1k5qaari)
Copied sub-MNI3_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-12-57_sct_deepseg_1k5qaari/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-05_20-12-57_sct_deepseg_1k5qaari/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_05_201314.030338.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-13-40_sct_deepseg_8_yw0j5q)
Copied sub-MPI3_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-13-40_sct_deepseg_8_yw0j5q/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-05_20-13-40_sct_deepseg_8_yw0j5q/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_05_201356.325233.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-14-07_sct_deepseg_51fypxq8)
Copied sub-MSSM1_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-14-07_sct_deepseg_51fypxq8/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-05_20-14-07_sct_deepseg_51fypxq8/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_05_201424.227997.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-14-35_sct_deepseg_vr3m3a48)
Copied sub-MSSM2_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-14-35_sct_deepseg_vr3m3a48/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-05_20-14-35_sct_deepseg_vr3m3a48/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_05_201452.224044.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-15-03_sct_deepseg_behh__9v)
Copied sub-MSSM3_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-15-03_sct_deepseg_behh__9v/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-05_20-15-03_sct_deepseg_behh__9v/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_05_201520.124666.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-15-31_sct_deepseg_ybsqvv3c)
Copied sub-NTNU1_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-15-31_sct_deepseg_ybsqvv3c/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-05_20-15-31_sct_deepseg_ybsqvv3c/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_05_201548.137731.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-15-59_sct_deepseg_xx2fwoy1)
Copied sub-NTNU2_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-15-59_sct_deepseg_xx2fwoy1/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-05_20-15-59_sct_deepseg_xx2fwoy1/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_05_201616.187044.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-16-35_sct_deepseg_p8lm4xor)
Copied sub-UCL1_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-16-35_sct_deepseg_p8lm4xor/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-05_20-16-35_sct_deepseg_p8lm4xor/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_05_201651.464469.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-17-03_sct_deepseg_a7ntebel)
Copied sub-UCL2_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-17-03_sct_deepseg_a7ntebel/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-05_20-17-03_sct_deepseg_a7ntebel/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_05_201719.464156.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-17-31_sct_deepseg_qg44qksa)
Copied sub-UCL3_UNIT1.nii.gz to /tmp/sct_2024-11-05_20-17-31_sct_deepseg_qg44qksa/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-05_20-17-31_sct_deepseg_qg44qksa/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_05_201747.458526.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-20-36_sct_deepseg_1d2k1i3i)
Copied sub-CRMBM1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-20-36_sct_deepseg_1d2k1i3i/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-05_20-20-36_sct_deepseg_1d2k1i3i/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_05_202103.912689.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-21-12_sct_deepseg_ay0vycr6)
Copied sub-CRMBM2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-21-12_sct_deepseg_ay0vycr6/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-05_20-21-12_sct_deepseg_ay0vycr6/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_05_202138.328528.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-21-46_sct_deepseg_ckka5syx)
Copied sub-CRMBM3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-21-46_sct_deepseg_ckka5syx/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-21-46_sct_deepseg_ckka5syx/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_05_202212.358500.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-22-20_sct_deepseg_4vt904e3)
Copied sub-MGH1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-22-20_sct_deepseg_4vt904e3/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-22-20_sct_deepseg_4vt904e3/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_05_202246.302311.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-22-54_sct_deepseg_f_k9r9oa)
Copied sub-MGH2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-22-54_sct_deepseg_f_k9r9oa/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-22-54_sct_deepseg_f_k9r9oa/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_05_202320.106567.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-23-28_sct_deepseg_01csq0kj)
Copied sub-MGH3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-23-28_sct_deepseg_01csq0kj/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-23-28_sct_deepseg_01csq0kj/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_05_202353.858525.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-24-02_sct_deepseg_j_nwyhk6)
Copied sub-MNI1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-24-02_sct_deepseg_j_nwyhk6/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-24-02_sct_deepseg_j_nwyhk6/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_05_202427.835398.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-24-36_sct_deepseg_9_aoz0o1)
Copied sub-MNI2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-24-36_sct_deepseg_9_aoz0o1/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-24-36_sct_deepseg_9_aoz0o1/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_05_202502.160098.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-25-10_sct_deepseg_oxpp2j7t)
Copied sub-MNI3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-25-10_sct_deepseg_oxpp2j7t/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_20-25-10_sct_deepseg_oxpp2j7t/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_05_202536.011750.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-25-44_sct_deepseg_7zhwc7qf)
Copied sub-MPI1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-25-44_sct_deepseg_7zhwc7qf/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-05_20-25-44_sct_deepseg_7zhwc7qf/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_05_202609.403136.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-26-17_sct_deepseg_p04on53q)
Copied sub-MPI2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-26-17_sct_deepseg_p04on53q/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-05_20-26-17_sct_deepseg_p04on53q/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_05_202642.865780.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-26-51_sct_deepseg_fae5t39s)
Copied sub-MPI3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-26-51_sct_deepseg_fae5t39s/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-05_20-26-51_sct_deepseg_fae5t39s/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_05_202716.198725.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-27-24_sct_deepseg_49efzkv5)
Copied sub-NTNU1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-27-24_sct_deepseg_49efzkv5/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-05_20-27-24_sct_deepseg_49efzkv5/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_05_202749.489474.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-27-57_sct_deepseg_lrrsgnxt)
Copied sub-NTNU2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-27-57_sct_deepseg_lrrsgnxt/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-05_20-27-57_sct_deepseg_lrrsgnxt/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_05_202822.823417.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-28-34_sct_deepseg_dp6sihdf)
Copied sub-UCL1_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-28-34_sct_deepseg_dp6sihdf/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-05_20-28-34_sct_deepseg_dp6sihdf/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_05_202859.309640.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-29-07_sct_deepseg_zfk2y0i0)
Copied sub-UCL2_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-29-07_sct_deepseg_zfk2y0i0/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-05_20-29-07_sct_deepseg_zfk2y0i0/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_05_202932.598328.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-29-40_sct_deepseg_6chwpo34)
Copied sub-UCL3_acq-anat_TB1TFL.nii.gz to /tmp/sct_2024-11-05_20-29-40_sct_deepseg_6chwpo34/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-05_20-29-40_sct_deepseg_6chwpo34/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_05_203005.937257.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-30-10_register-wrapper_ofq1quxw)

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-05_20-30-10_register-wrapper_ofq1quxw

--
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-05_20-30-12_register-slicewise_vurkdazi)

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:08,  4.60iter/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%|████████▌             | 122/314 [00:00<00:00, 482.33iter/s]
Estimate cord angle for each slice:  79%|█████████████████▎    | 247/314 [00:00<00:00, 758.22iter/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, 664.66iter/s]

Build 3D deformation field:   0%|                                         | 0/302 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 13/302 [00:00<00:02, 128.25iter/s]
Build 3D deformation field:   9%|██▊                            | 27/302 [00:00<00:02, 134.68iter/s]
Build 3D deformation field:  14%|████▏                          | 41/302 [00:00<00:01, 135.29iter/s]
Build 3D deformation field:  18%|█████▋                         | 55/302 [00:00<00:01, 136.38iter/s]
Build 3D deformation field:  23%|███████                        | 69/302 [00:00<00:01, 137.03iter/s]
Build 3D deformation field:  28%|████████▌                      | 84/302 [00:00<00:01, 138.45iter/s]
Build 3D deformation field:  32%|██████████                     | 98/302 [00:00<00:01, 138.08iter/s]
Build 3D deformation field:  37%|███████████▏                  | 112/302 [00:00<00:01, 138.59iter/s]
Build 3D deformation field:  42%|████████████▌                 | 126/302 [00:00<00:01, 138.12iter/s]
Build 3D deformation field:  46%|█████████████▉                | 140/302 [00:01<00:01, 137.75iter/s]
Build 3D deformation field:  51%|███████████████▎              | 154/302 [00:01<00:01, 137.84iter/s]
Build 3D deformation field:  56%|████████████████▋             | 168/302 [00:01<00:00, 137.18iter/s]
Build 3D deformation field:  60%|██████████████████            | 182/302 [00:01<00:00, 136.36iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 196/302 [00:01<00:00, 137.16iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 210/302 [00:01<00:00, 136.41iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 224/302 [00:01<00:00, 136.19iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 238/302 [00:01<00:00, 135.91iter/s]
Build 3D deformation field:  83%|█████████████████████████     | 252/302 [00:01<00:00, 135.58iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 266/302 [00:01<00:00, 135.90iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 280/302 [00:02<00:00, 135.97iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 295/302 [00:02<00:00, 137.69iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 302/302 [00:02<00:00, 136.90iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2024-11-05_20-30-10_register-wrapper_ofq1quxw
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-30-10_register-wrapper_ofq1quxw
rm -rf /tmp/sct_2024-11-05_20-30-12_register-slicewise_vurkdazi

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-05_20-30-10_register-wrapper_ofq1quxw
/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-05_20-30-10_register-wrapper_ofq1quxw

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-05_20-30-10_register-wrapper_ofq1quxw/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-05_20-30-10_register-wrapper_ofq1quxw/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-05_20-30-10_register-wrapper_ofq1quxw

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_05_203019.438172.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-30-22_register-wrapper_owx32gym)

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-05_20-30-22_register-wrapper_owx32gym

--
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-05_20-30-23_register-slicewise_rtq2akx1)

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.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.
Estimate cord angle for each slice:  56%|████████████▎         | 127/226 [00:00<00:00, 506.38iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 575.94iter/s]

Build 3D deformation field:   0%|                                         | 0/220 [00:00<?, ?iter/s]
Build 3D deformation field:   7%|██▎                            | 16/220 [00:00<00:01, 152.93iter/s]
Build 3D deformation field:  15%|████▌                          | 32/220 [00:00<00:01, 152.10iter/s]
Build 3D deformation field:  22%|██████▊                        | 48/220 [00:00<00:01, 151.06iter/s]
Build 3D deformation field:  29%|█████████                      | 64/220 [00:00<00:01, 151.91iter/s]
Build 3D deformation field:  36%|███████████▎                   | 80/220 [00:00<00:00, 151.97iter/s]
Build 3D deformation field:  44%|█████████████▌                 | 96/220 [00:00<00:00, 150.93iter/s]
Build 3D deformation field:  51%|███████████████▎              | 112/220 [00:00<00:00, 149.60iter/s]
Build 3D deformation field:  58%|█████████████████▎            | 127/220 [00:00<00:00, 149.05iter/s]
Build 3D deformation field:  65%|███████████████████▎          | 142/220 [00:00<00:00, 148.83iter/s]
Build 3D deformation field:  71%|█████████████████████▍        | 157/220 [00:01<00:00, 148.63iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 172/220 [00:01<00:00, 148.51iter/s]
Build 3D deformation field:  85%|█████████████████████████▌    | 187/220 [00:01<00:00, 148.19iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 202/220 [00:01<00:00, 148.35iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 218/220 [00:01<00:00, 149.36iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 220/220 [00:01<00:00, 149.70iter/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-05_20-30-22_register-wrapper_owx32gym
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-30-22_register-wrapper_owx32gym
rm -rf /tmp/sct_2024-11-05_20-30-23_register-slicewise_rtq2akx1

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-05_20-30-22_register-wrapper_owx32gym
/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-05_20-30-22_register-wrapper_owx32gym

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-05_20-30-22_register-wrapper_owx32gym/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-05_20-30-22_register-wrapper_owx32gym/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-05_20-30-22_register-wrapper_owx32gym

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_05_203028.674247.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-30-31_register-wrapper_ig4760rx)

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-05_20-30-31_register-wrapper_ig4760rx

--
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-05_20-30-34_register-slicewise_njuc3m21)

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:14,  4.51iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #6 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #7 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #8 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #9 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #10 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #11 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #12 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #24 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #25 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #26 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #27 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #28 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #29 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #30 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #31 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #32 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #33 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #34 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #35 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #36 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #37 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #38 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #39 is empty. It will be ignored.
Estimate cord angle for each slice:  34%|███████▌              | 116/337 [00:00<00:00, 453.59iter/s]
Estimate cord angle for each slice:  71%|███████████████▌      | 238/337 [00:00<00:00, 728.40iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 675.22iter/s]

Build 3D deformation field:   0%|                                         | 0/284 [00:00<?, ?iter/s]
Build 3D deformation field:   3%|█                                | 9/284 [00:00<00:03, 85.26iter/s]
Build 3D deformation field:   7%|██▏                             | 19/284 [00:00<00:02, 88.81iter/s]
Build 3D deformation field:  10%|███▎                            | 29/284 [00:00<00:02, 90.80iter/s]
Build 3D deformation field:  14%|████▍                           | 39/284 [00:00<00:02, 90.77iter/s]
Build 3D deformation field:  17%|█████▌                          | 49/284 [00:00<00:02, 90.56iter/s]
Build 3D deformation field:  21%|██████▋                         | 59/284 [00:00<00:02, 90.60iter/s]
Build 3D deformation field:  24%|███████▊                        | 69/284 [00:00<00:02, 90.82iter/s]
Build 3D deformation field:  28%|████████▉                       | 79/284 [00:00<00:02, 91.76iter/s]
Build 3D deformation field:  31%|██████████                      | 89/284 [00:00<00:02, 91.66iter/s]
Build 3D deformation field:  35%|███████████▏                    | 99/284 [00:01<00:02, 91.66iter/s]
Build 3D deformation field:  38%|███████████▉                   | 109/284 [00:01<00:01, 91.60iter/s]
Build 3D deformation field:  42%|████████████▉                  | 119/284 [00:01<00:01, 91.85iter/s]
Build 3D deformation field:  45%|██████████████                 | 129/284 [00:01<00:01, 91.88iter/s]
Build 3D deformation field:  49%|███████████████▏               | 139/284 [00:01<00:01, 91.82iter/s]
Build 3D deformation field:  52%|████████████████▎              | 149/284 [00:01<00:01, 91.77iter/s]
Build 3D deformation field:  56%|█████████████████▎             | 159/284 [00:01<00:01, 92.19iter/s]
Build 3D deformation field:  60%|██████████████████▍            | 169/284 [00:01<00:01, 92.31iter/s]
Build 3D deformation field:  63%|███████████████████▌           | 179/284 [00:01<00:01, 92.32iter/s]
Build 3D deformation field:  67%|████████████████████▋          | 189/284 [00:02<00:01, 92.06iter/s]
Build 3D deformation field:  70%|█████████████████████▋         | 199/284 [00:02<00:00, 91.97iter/s]
Build 3D deformation field:  74%|██████████████████████▊        | 209/284 [00:02<00:00, 90.91iter/s]
Build 3D deformation field:  77%|███████████████████████▉       | 219/284 [00:02<00:00, 91.21iter/s]
Build 3D deformation field:  81%|████████████████████████▉      | 229/284 [00:02<00:00, 91.66iter/s]
Build 3D deformation field:  84%|██████████████████████████     | 239/284 [00:02<00:00, 92.11iter/s]
Build 3D deformation field:  88%|███████████████████████████▏   | 249/284 [00:02<00:00, 92.09iter/s]
Build 3D deformation field:  91%|████████████████████████████▎  | 259/284 [00:02<00:00, 92.02iter/s]
Build 3D deformation field:  95%|█████████████████████████████▍ | 270/284 [00:02<00:00, 95.53iter/s]
Build 3D deformation field:  99%|██████████████████████████████▋| 281/284 [00:03<00:00, 98.09iter/s]
Build 3D deformation field: 100%|███████████████████████████████| 284/284 [00:03<00:00, 92.52iter/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-05_20-30-31_register-wrapper_ig4760rx
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-30-31_register-wrapper_ig4760rx
rm -rf /tmp/sct_2024-11-05_20-30-34_register-slicewise_njuc3m21

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-05_20-30-31_register-wrapper_ig4760rx
/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-05_20-30-31_register-wrapper_ig4760rx

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-05_20-30-31_register-wrapper_ig4760rx/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-05_20-30-31_register-wrapper_ig4760rx/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-05_20-30-31_register-wrapper_ig4760rx

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_05_203043.080332.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-30-46_register-wrapper_a5z9s5b5)

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-05_20-30-46_register-wrapper_a5z9s5b5

--
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-05_20-30-48_register-slicewise_mjndfdr5)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 62 x 118 x 226
  voxel size: 1.0mm x 1.0mm x 226mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/226 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/226 [00:00<00:48,  4.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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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:  54%|███████████▉          | 123/226 [00:00<00:00, 489.88iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 568.72iter/s]

Build 3D deformation field:   0%|                                         | 0/189 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▉                             | 12/189 [00:00<00:01, 115.25iter/s]
Build 3D deformation field:  13%|███▉                           | 24/189 [00:00<00:01, 115.28iter/s]
Build 3D deformation field:  20%|██████                         | 37/189 [00:00<00:01, 118.40iter/s]
Build 3D deformation field:  26%|████████▏                      | 50/189 [00:00<00:01, 119.55iter/s]
Build 3D deformation field:  33%|██████████▎                    | 63/189 [00:00<00:01, 120.27iter/s]
Build 3D deformation field:  40%|████████████▍                  | 76/189 [00:00<00:00, 120.52iter/s]
Build 3D deformation field:  47%|██████████████▌                | 89/189 [00:00<00:00, 120.37iter/s]
Build 3D deformation field:  54%|████████████████▏             | 102/189 [00:00<00:00, 120.30iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 115/189 [00:00<00:00, 120.50iter/s]
Build 3D deformation field:  68%|████████████████████▎         | 128/189 [00:01<00:00, 120.41iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 141/189 [00:01<00:00, 120.42iter/s]
Build 3D deformation field:  81%|████████████████████████▍     | 154/189 [00:01<00:00, 120.53iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 167/189 [00:01<00:00, 120.58iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 180/189 [00:01<00:00, 120.78iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 189/189 [00:01<00:00, 120.11iter/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-05_20-30-46_register-wrapper_a5z9s5b5
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-30-46_register-wrapper_a5z9s5b5
rm -rf /tmp/sct_2024-11-05_20-30-48_register-slicewise_mjndfdr5

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-05_20-30-46_register-wrapper_a5z9s5b5
/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-05_20-30-46_register-wrapper_a5z9s5b5

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-05_20-30-46_register-wrapper_a5z9s5b5/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-05_20-30-46_register-wrapper_a5z9s5b5/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-05_20-30-46_register-wrapper_a5z9s5b5

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_05_203053.327496.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-30-56_register-wrapper_1tojir3i)

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-05_20-30-56_register-wrapper_1tojir3i

--
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-05_20-30-58_register-slicewise_app0w7vk)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 59 x 117 x 223
  voxel size: 1.0mm x 1.0mm x 223mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/223 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/223 [00:00<00:48,  4.61iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 486.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 #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, 559.30iter/s]

Build 3D deformation field:   0%|                                         | 0/218 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 13/218 [00:00<00:01, 120.72iter/s]
Build 3D deformation field:  12%|███▋                           | 26/218 [00:00<00:01, 125.07iter/s]
Build 3D deformation field:  18%|█████▌                         | 39/218 [00:00<00:01, 126.79iter/s]
Build 3D deformation field:  24%|███████▍                       | 52/218 [00:00<00:01, 126.90iter/s]
Build 3D deformation field:  30%|█████████▏                     | 65/218 [00:00<00:01, 126.91iter/s]
Build 3D deformation field:  36%|███████████                    | 78/218 [00:00<00:01, 127.07iter/s]
Build 3D deformation field:  42%|████████████▉                  | 91/218 [00:00<00:00, 127.21iter/s]
Build 3D deformation field:  48%|██████████████▎               | 104/218 [00:00<00:00, 127.14iter/s]
Build 3D deformation field:  54%|████████████████              | 117/218 [00:00<00:00, 127.64iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 130/218 [00:01<00:00, 127.52iter/s]
Build 3D deformation field:  66%|███████████████████▋          | 143/218 [00:01<00:00, 127.83iter/s]
Build 3D deformation field:  72%|█████████████████████▍        | 156/218 [00:01<00:00, 127.32iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 169/218 [00:01<00:00, 127.62iter/s]
Build 3D deformation field:  83%|█████████████████████████     | 182/218 [00:01<00:00, 127.44iter/s]
Build 3D deformation field:  89%|██████████████████████████▊   | 195/218 [00:01<00:00, 127.09iter/s]
Build 3D deformation field:  95%|████████████████████████████▌ | 208/218 [00:01<00:00, 127.43iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 218/218 [00:01<00:00, 127.14iter/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-05_20-30-56_register-wrapper_1tojir3i
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-30-56_register-wrapper_1tojir3i
rm -rf /tmp/sct_2024-11-05_20-30-58_register-slicewise_app0w7vk

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-05_20-30-56_register-wrapper_1tojir3i
/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-05_20-30-56_register-wrapper_1tojir3i

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-05_20-30-56_register-wrapper_1tojir3i/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-05_20-30-56_register-wrapper_1tojir3i/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-05_20-30-56_register-wrapper_1tojir3i

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_05_203103.481562.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-31-06_register-wrapper_dds1w95d)

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-05_20-31-06_register-wrapper_dds1w95d

--
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-05_20-31-08_register-slicewise_bcwjlwjo)

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.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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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%|███████████           | 119/238 [00:00<00:00, 473.22iter/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.03iter/s]

Build 3D deformation field:   0%|                                         | 0/216 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 11/216 [00:00<00:01, 105.25iter/s]
Build 3D deformation field:  10%|███▏                           | 22/216 [00:00<00:01, 107.60iter/s]
Build 3D deformation field:  15%|████▋                          | 33/216 [00:00<00:01, 108.51iter/s]
Build 3D deformation field:  20%|██████▎                        | 44/216 [00:00<00:01, 108.72iter/s]
Build 3D deformation field:  25%|███████▉                       | 55/216 [00:00<00:01, 108.90iter/s]
Build 3D deformation field:  31%|█████████▍                     | 66/216 [00:00<00:01, 109.19iter/s]
Build 3D deformation field:  36%|███████████▏                   | 78/216 [00:00<00:01, 109.71iter/s]
Build 3D deformation field:  42%|████████████▉                  | 90/216 [00:00<00:01, 109.87iter/s]
Build 3D deformation field:  47%|██████████████▏               | 102/216 [00:00<00:01, 110.56iter/s]
Build 3D deformation field:  53%|███████████████▊              | 114/216 [00:01<00:00, 110.20iter/s]
Build 3D deformation field:  58%|█████████████████▌            | 126/216 [00:01<00:00, 110.72iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 138/216 [00:01<00:00, 111.28iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 150/216 [00:01<00:00, 111.40iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 162/216 [00:01<00:00, 111.29iter/s]
Build 3D deformation field:  81%|████████████████████████▏     | 174/216 [00:01<00:00, 111.35iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 186/216 [00:01<00:00, 111.24iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 198/216 [00:01<00:00, 110.98iter/s]
Build 3D deformation field:  97%|█████████████████████████████▏| 210/216 [00:01<00:00, 110.52iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 216/216 [00:01<00:00, 110.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-05_20-31-06_register-wrapper_dds1w95d
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-31-06_register-wrapper_dds1w95d
rm -rf /tmp/sct_2024-11-05_20-31-08_register-slicewise_bcwjlwjo

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-05_20-31-06_register-wrapper_dds1w95d
/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-05_20-31-06_register-wrapper_dds1w95d

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-05_20-31-06_register-wrapper_dds1w95d/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-05_20-31-06_register-wrapper_dds1w95d/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-05_20-31-06_register-wrapper_dds1w95d

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_05_203114.705371.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-31-18_register-wrapper_zqs6bfus)

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-05_20-31-18_register-wrapper_zqs6bfus

--
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-05_20-31-20_register-slicewise_rf9fecl9)

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.71iter/s]
Estimate cord angle for each slice:  35%|███████▌              | 127/367 [00:00<00:00, 507.82iter/s]
Estimate cord angle for each slice:  69%|███████████████       | 252/367 [00:00<00:00, 777.82iter/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, 727.96iter/s]

Build 3D deformation field:   0%|                                         | 0/363 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 17/363 [00:00<00:02, 163.78iter/s]
Build 3D deformation field:  10%|██▉                            | 35/363 [00:00<00:01, 172.57iter/s]
Build 3D deformation field:  15%|████▌                          | 53/363 [00:00<00:01, 174.31iter/s]
Build 3D deformation field:  20%|██████                         | 71/363 [00:00<00:01, 175.57iter/s]
Build 3D deformation field:  25%|███████▌                       | 89/363 [00:00<00:01, 175.47iter/s]
Build 3D deformation field:  29%|████████▊                     | 107/363 [00:00<00:01, 176.18iter/s]
Build 3D deformation field:  34%|██████████▎                   | 125/363 [00:00<00:01, 176.15iter/s]
Build 3D deformation field:  39%|███████████▊                  | 143/363 [00:00<00:01, 176.25iter/s]
Build 3D deformation field:  44%|█████████████▎                | 161/363 [00:00<00:01, 176.17iter/s]
Build 3D deformation field:  49%|██████████████▊               | 179/363 [00:01<00:01, 176.31iter/s]
Build 3D deformation field:  54%|████████████████▎             | 197/363 [00:01<00:00, 176.38iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 215/363 [00:01<00:00, 176.03iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 234/363 [00:01<00:00, 177.69iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 252/363 [00:01<00:00, 177.62iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 270/363 [00:01<00:00, 177.28iter/s]
Build 3D deformation field:  79%|███████████████████████▊      | 288/363 [00:01<00:00, 176.78iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 306/363 [00:01<00:00, 176.39iter/s]
Build 3D deformation field:  89%|██████████████████████████▊   | 324/363 [00:01<00:00, 175.95iter/s]
Build 3D deformation field:  94%|████████████████████████████▎ | 342/363 [00:01<00:00, 175.29iter/s]
Build 3D deformation field:  99%|█████████████████████████████▊| 360/363 [00:02<00:00, 174.91iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 363/363 [00:02<00:00, 175.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-05_20-31-18_register-wrapper_zqs6bfus
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-31-18_register-wrapper_zqs6bfus
rm -rf /tmp/sct_2024-11-05_20-31-20_register-slicewise_rf9fecl9

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-05_20-31-18_register-wrapper_zqs6bfus
/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-05_20-31-18_register-wrapper_zqs6bfus

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-05_20-31-18_register-wrapper_zqs6bfus/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-05_20-31-18_register-wrapper_zqs6bfus/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-05_20-31-18_register-wrapper_zqs6bfus

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_05_203127.308819.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-31-30_register-wrapper_qurr_2ro)

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-05_20-31-30_register-wrapper_qurr_2ro

--
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-05_20-31-32_register-slicewise_e3rfjl1t)

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, 496.23iter/s]
Estimate cord angle for each slice:  69%|███████████████       | 248/361 [00:00<00:00, 761.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 #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, 718.31iter/s]

Build 3D deformation field:   0%|                                         | 0/345 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 18/345 [00:00<00:01, 171.62iter/s]
Build 3D deformation field:  11%|███▎                           | 37/345 [00:00<00:01, 178.75iter/s]
Build 3D deformation field:  16%|█████                          | 56/345 [00:00<00:01, 180.87iter/s]
Build 3D deformation field:  22%|██████▋                        | 75/345 [00:00<00:01, 181.60iter/s]
Build 3D deformation field:  27%|████████▍                      | 94/345 [00:00<00:01, 182.54iter/s]
Build 3D deformation field:  33%|█████████▊                    | 113/345 [00:00<00:01, 182.91iter/s]
Build 3D deformation field:  38%|███████████▍                  | 132/345 [00:00<00:01, 183.52iter/s]
Build 3D deformation field:  44%|█████████████▏                | 151/345 [00:00<00:01, 183.42iter/s]
Build 3D deformation field:  49%|██████████████▊               | 170/345 [00:00<00:00, 182.54iter/s]
Build 3D deformation field:  55%|████████████████▍             | 189/345 [00:01<00:00, 182.86iter/s]
Build 3D deformation field:  60%|██████████████████            | 208/345 [00:01<00:00, 183.09iter/s]
Build 3D deformation field:  66%|███████████████████▋          | 227/345 [00:01<00:00, 183.43iter/s]
Build 3D deformation field:  71%|█████████████████████▍        | 246/345 [00:01<00:00, 183.74iter/s]
Build 3D deformation field:  77%|███████████████████████       | 265/345 [00:01<00:00, 184.15iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 284/345 [00:01<00:00, 184.49iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 303/345 [00:01<00:00, 184.84iter/s]
Build 3D deformation field:  93%|████████████████████████████  | 322/345 [00:01<00:00, 184.63iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 341/345 [00:01<00:00, 184.43iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 345/345 [00:01<00:00, 183.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-05_20-31-30_register-wrapper_qurr_2ro
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-31-30_register-wrapper_qurr_2ro
rm -rf /tmp/sct_2024-11-05_20-31-32_register-slicewise_e3rfjl1t

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-05_20-31-30_register-wrapper_qurr_2ro
/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-05_20-31-30_register-wrapper_qurr_2ro

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-05_20-31-30_register-wrapper_qurr_2ro/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-05_20-31-30_register-wrapper_qurr_2ro/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-05_20-31-30_register-wrapper_qurr_2ro

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_05_203138.376992.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-31-41_register-wrapper_e6sy6m14)

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-05_20-31-41_register-wrapper_e6sy6m14

--
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-05_20-31-43_register-slicewise_hlbj53hm)

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.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:  48%|██████████▍           | 124/260 [00:00<00:00, 493.63iter/s]
Estimate cord angle for each slice:  96%|█████████████████████ | 249/260 [00:00<00:00, 767.19iter/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, 611.97iter/s]

Build 3D deformation field:   0%|                                         | 0/252 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 13/252 [00:00<00:01, 120.65iter/s]
Build 3D deformation field:  10%|███▏                           | 26/252 [00:00<00:01, 123.32iter/s]
Build 3D deformation field:  15%|████▊                          | 39/252 [00:00<00:01, 122.64iter/s]
Build 3D deformation field:  21%|██████▍                        | 52/252 [00:00<00:01, 123.74iter/s]
Build 3D deformation field:  26%|███████▉                       | 65/252 [00:00<00:01, 124.31iter/s]
Build 3D deformation field:  31%|█████████▌                     | 78/252 [00:00<00:01, 125.52iter/s]
Build 3D deformation field:  36%|███████████▏                   | 91/252 [00:00<00:01, 126.24iter/s]
Build 3D deformation field:  41%|████████████▍                 | 104/252 [00:00<00:01, 125.72iter/s]
Build 3D deformation field:  46%|█████████████▉                | 117/252 [00:00<00:01, 125.44iter/s]
Build 3D deformation field:  52%|███████████████▍              | 130/252 [00:01<00:00, 126.28iter/s]
Build 3D deformation field:  57%|█████████████████             | 143/252 [00:01<00:00, 126.22iter/s]
Build 3D deformation field:  62%|██████████████████▌           | 156/252 [00:01<00:00, 125.32iter/s]
Build 3D deformation field:  67%|████████████████████          | 169/252 [00:01<00:00, 125.49iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 182/252 [00:01<00:00, 125.54iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 195/252 [00:01<00:00, 125.56iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 208/252 [00:01<00:00, 125.73iter/s]
Build 3D deformation field:  88%|██████████████████████████▎   | 221/252 [00:01<00:00, 126.05iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 234/252 [00:01<00:00, 126.67iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 247/252 [00:01<00:00, 126.37iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 252/252 [00:02<00:00, 125.56iter/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-05_20-31-41_register-wrapper_e6sy6m14
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-31-41_register-wrapper_e6sy6m14
rm -rf /tmp/sct_2024-11-05_20-31-43_register-slicewise_hlbj53hm

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-05_20-31-41_register-wrapper_e6sy6m14
/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-05_20-31-41_register-wrapper_e6sy6m14

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-05_20-31-41_register-wrapper_e6sy6m14/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-05_20-31-41_register-wrapper_e6sy6m14/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-05_20-31-41_register-wrapper_e6sy6m14

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_05_203149.334534.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-31-52_register-wrapper_zyc460m2)

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-05_20-31-52_register-wrapper_zyc460m2

--
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-05_20-31-53_register-slicewise_8vmn0xfq)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 68 x 89 x 266
  voxel size: 0.7065217mm x 0.7000045mm x 266mm

Split input segmentation...
Split destination segmentation...

Estimate cord angle for each slice:   0%|                                 | 0/266 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/266 [00:00<00:58,  4.56iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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:  47%|██████████▎           | 125/266 [00:00<00:00, 491.52iter/s]
Estimate cord angle for each slice:  96%|█████████████████████ | 255/266 [00:00<00:00, 782.28iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 266/266 [00:00<00:00, 621.06iter/s]

Build 3D deformation field:   0%|                                         | 0/248 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 14/248 [00:00<00:01, 136.42iter/s]
Build 3D deformation field:  12%|███▋                           | 29/248 [00:00<00:01, 141.56iter/s]
Build 3D deformation field:  18%|█████▌                         | 44/248 [00:00<00:01, 142.98iter/s]
Build 3D deformation field:  24%|███████▍                       | 59/248 [00:00<00:01, 144.45iter/s]
Build 3D deformation field:  30%|█████████▎                     | 74/248 [00:00<00:01, 145.01iter/s]
Build 3D deformation field:  36%|███████████▏                   | 89/248 [00:00<00:01, 145.24iter/s]
Build 3D deformation field:  42%|████████████▌                 | 104/248 [00:00<00:00, 145.43iter/s]
Build 3D deformation field:  48%|██████████████▍               | 119/248 [00:00<00:00, 145.39iter/s]
Build 3D deformation field:  54%|████████████████▏             | 134/248 [00:00<00:00, 145.25iter/s]
Build 3D deformation field:  60%|██████████████████            | 149/248 [00:01<00:00, 145.40iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 164/248 [00:01<00:00, 143.74iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 179/248 [00:01<00:00, 144.35iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 194/248 [00:01<00:00, 145.20iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 209/248 [00:01<00:00, 145.48iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 224/248 [00:01<00:00, 145.21iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 239/248 [00:01<00:00, 145.00iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 144.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-05_20-31-52_register-wrapper_zyc460m2
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-31-52_register-wrapper_zyc460m2
rm -rf /tmp/sct_2024-11-05_20-31-53_register-slicewise_8vmn0xfq

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-05_20-31-52_register-wrapper_zyc460m2
/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-05_20-31-52_register-wrapper_zyc460m2

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-05_20-31-52_register-wrapper_zyc460m2/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-05_20-31-52_register-wrapper_zyc460m2/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-05_20-31-52_register-wrapper_zyc460m2

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
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_05_203200.042708.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-02_register-wrapper_e08jghjb)

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-05_20-32-02_register-wrapper_e08jghjb

--
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-05_20-32-04_register-slicewise_68netgjc)

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:58,  4.69iter/s]
Estimate cord angle for each slice:  46%|██████████▏           | 128/276 [00:00<00:00, 511.33iter/s]
Estimate cord angle for each slice:  93%|████████████████████▍ | 256/276 [00:00<00:00, 789.65iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 276/276 [00:00<00:00, 641.30iter/s]

Build 3D deformation field:   0%|                                         | 0/276 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 16/276 [00:00<00:01, 153.99iter/s]
Build 3D deformation field:  12%|███▋                           | 33/276 [00:00<00:01, 159.08iter/s]
Build 3D deformation field:  18%|█████▌                         | 49/276 [00:00<00:01, 157.27iter/s]
Build 3D deformation field:  24%|███████▍                       | 66/276 [00:00<00:01, 159.53iter/s]
Build 3D deformation field:  30%|█████████▎                     | 83/276 [00:00<00:01, 160.90iter/s]
Build 3D deformation field:  36%|██████████▊                   | 100/276 [00:00<00:01, 161.27iter/s]
Build 3D deformation field:  42%|████████████▋                 | 117/276 [00:00<00:00, 161.61iter/s]
Build 3D deformation field:  49%|██████████████▌               | 134/276 [00:00<00:00, 161.75iter/s]
Build 3D deformation field:  55%|████████████████▍             | 151/276 [00:00<00:00, 162.08iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 168/276 [00:01<00:00, 161.82iter/s]
Build 3D deformation field:  67%|████████████████████          | 185/276 [00:01<00:00, 162.18iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 202/276 [00:01<00:00, 162.11iter/s]
Build 3D deformation field:  79%|███████████████████████▊      | 219/276 [00:01<00:00, 162.13iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 236/276 [00:01<00:00, 162.08iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 253/276 [00:01<00:00, 162.25iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 270/276 [00:01<00:00, 162.36iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 276/276 [00:01<00:00, 161.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-05_20-32-02_register-wrapper_e08jghjb
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-32-02_register-wrapper_e08jghjb
rm -rf /tmp/sct_2024-11-05_20-32-04_register-slicewise_68netgjc

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-05_20-32-02_register-wrapper_e08jghjb
/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-05_20-32-02_register-wrapper_e08jghjb

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-05_20-32-02_register-wrapper_e08jghjb/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-05_20-32-02_register-wrapper_e08jghjb/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-05_20-32-02_register-wrapper_e08jghjb

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_05_203209.847925.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-12_register-wrapper_sm8l2fv3)

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-05_20-32-12_register-wrapper_sm8l2fv3

--
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-05_20-32-14_register-slicewise_wv9jszbm)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 68 x 117 x 282
  voxel size: 0.7065217mm x 0.7mm x 282mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/282 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/282 [00:00<01:01,  4.56iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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, 463.75iter/s]
Estimate cord angle for each slice:  86%|██████████████████▉   | 243/282 [00:00<00:00, 746.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 #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, 626.07iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/263 [00:00<00:02, 107.88iter/s]
Build 3D deformation field:   8%|██▌                            | 22/263 [00:00<00:02, 108.89iter/s]
Build 3D deformation field:  13%|████                           | 34/263 [00:00<00:02, 109.83iter/s]
Build 3D deformation field:  17%|█████▎                         | 45/263 [00:00<00:01, 109.78iter/s]
Build 3D deformation field:  22%|██████▋                        | 57/263 [00:00<00:01, 110.40iter/s]
Build 3D deformation field:  26%|████████▏                      | 69/263 [00:00<00:01, 110.58iter/s]
Build 3D deformation field:  31%|█████████▌                     | 81/263 [00:00<00:01, 111.55iter/s]
Build 3D deformation field:  35%|██████████▉                    | 93/263 [00:00<00:01, 112.86iter/s]
Build 3D deformation field:  40%|███████████▉                  | 105/263 [00:00<00:01, 112.51iter/s]
Build 3D deformation field:  44%|█████████████▎                | 117/263 [00:01<00:01, 112.62iter/s]
Build 3D deformation field:  49%|██████████████▋               | 129/263 [00:01<00:01, 111.86iter/s]
Build 3D deformation field:  54%|████████████████              | 141/263 [00:01<00:01, 111.27iter/s]
Build 3D deformation field:  58%|█████████████████▍            | 153/263 [00:01<00:00, 110.88iter/s]
Build 3D deformation field:  63%|██████████████████▊           | 165/263 [00:01<00:00, 110.42iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 177/263 [00:01<00:00, 110.28iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 189/263 [00:01<00:00, 109.85iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 200/263 [00:01<00:00, 109.47iter/s]
Build 3D deformation field:  80%|████████████████████████      | 211/263 [00:01<00:00, 109.35iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 222/263 [00:02<00:00, 109.21iter/s]
Build 3D deformation field:  89%|██████████████████████████▌   | 233/263 [00:02<00:00, 109.16iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 245/263 [00:02<00:00, 110.01iter/s]
Build 3D deformation field:  97%|█████████████████████████████▏| 256/263 [00:02<00:00, 109.71iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 110.37iter/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-05_20-32-12_register-wrapper_sm8l2fv3
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-32-12_register-wrapper_sm8l2fv3
rm -rf /tmp/sct_2024-11-05_20-32-14_register-slicewise_wv9jszbm

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-05_20-32-12_register-wrapper_sm8l2fv3
/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-05_20-32-12_register-wrapper_sm8l2fv3

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-05_20-32-12_register-wrapper_sm8l2fv3/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-05_20-32-12_register-wrapper_sm8l2fv3/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-05_20-32-12_register-wrapper_sm8l2fv3

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_05_203222.097948.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-25_register-wrapper_a3279_r5)

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-05_20-32-25_register-wrapper_a3279_r5

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-05_20-32-25_register-wrapper_a3279_r5
/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-05_20-32-25_register-wrapper_a3279_r5

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-05_20-32-25_register-wrapper_a3279_r5/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-05_20-32-25_register-wrapper_a3279_r5/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-05_20-32-25_register-wrapper_a3279_r5

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_05_203227.425618.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-29_register-wrapper_75te8dnw)

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-05_20-32-29_register-wrapper_75te8dnw

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-05_20-32-29_register-wrapper_75te8dnw
/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-05_20-32-29_register-wrapper_75te8dnw

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-05_20-32-29_register-wrapper_75te8dnw/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-05_20-32-29_register-wrapper_75te8dnw/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-05_20-32-29_register-wrapper_75te8dnw

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_05_203231.970795.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-34_register-wrapper_pui2gesz)

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-05_20-32-34_register-wrapper_pui2gesz

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-05_20-32-34_register-wrapper_pui2gesz
/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-05_20-32-34_register-wrapper_pui2gesz

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-05_20-32-34_register-wrapper_pui2gesz/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-05_20-32-34_register-wrapper_pui2gesz/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-05_20-32-34_register-wrapper_pui2gesz

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_05_203237.902444.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-40_register-wrapper_70t5854p)

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-05_20-32-40_register-wrapper_70t5854p

--
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-05_20-32-42_register-slicewise_kbnag4gv)

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.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.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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%|█████████▏            | 123/296 [00:00<00:00, 492.22iter/s]
Estimate cord angle for each slice:  86%|██████████████████▉   | 255/296 [00:00<00:00, 793.11iter/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.32iter/s]

Build 3D deformation field:   0%|                                         | 0/240 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▌                            | 20/240 [00:00<00:01, 196.21iter/s]
Build 3D deformation field:  17%|█████▎                         | 41/240 [00:00<00:00, 204.21iter/s]
Build 3D deformation field:  26%|████████                       | 62/240 [00:00<00:00, 204.71iter/s]
Build 3D deformation field:  35%|██████████▋                    | 83/240 [00:00<00:00, 205.82iter/s]
Build 3D deformation field:  43%|█████████████                 | 104/240 [00:00<00:00, 206.41iter/s]
Build 3D deformation field:  52%|███████████████▋              | 125/240 [00:00<00:00, 206.48iter/s]
Build 3D deformation field:  61%|██████████████████▎           | 146/240 [00:00<00:00, 205.90iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 167/240 [00:00<00:00, 206.06iter/s]
Build 3D deformation field:  78%|███████████████████████▌      | 188/240 [00:00<00:00, 205.89iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 209/240 [00:01<00:00, 205.94iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 230/240 [00:01<00:00, 205.92iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 240/240 [00:01<00:00, 205.60iter/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-05_20-32-40_register-wrapper_70t5854p
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-32-40_register-wrapper_70t5854p
rm -rf /tmp/sct_2024-11-05_20-32-42_register-slicewise_kbnag4gv

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-05_20-32-40_register-wrapper_70t5854p
/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-05_20-32-40_register-wrapper_70t5854p

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-05_20-32-40_register-wrapper_70t5854p/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-05_20-32-40_register-wrapper_70t5854p/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-05_20-32-40_register-wrapper_70t5854p

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_05_203246.795099.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-49_register-wrapper_w80z1ely)

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-05_20-32-49_register-wrapper_w80z1ely

--
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-05_20-32-50_register-slicewise_01tnjvcz)

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.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.
Estimate cord angle for each slice:  55%|████████████          | 128/234 [00:00<00:00, 512.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 #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, 590.38iter/s]
Build 3D deformation field:   0%|                                         | 0/225 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 18/225 [00:00<00:01, 170.42iter/s]
Build 3D deformation field:  16%|████▉                          | 36/225 [00:00<00:01, 174.06iter/s]
Build 3D deformation field:  24%|███████▍                       | 54/225 [00:00<00:00, 174.96iter/s]
Build 3D deformation field:  32%|█████████▉                     | 72/225 [00:00<00:00, 175.03iter/s]
Build 3D deformation field:  40%|████████████▍                  | 90/225 [00:00<00:00, 175.20iter/s]
Build 3D deformation field:  48%|██████████████▍               | 108/225 [00:00<00:00, 175.02iter/s]
Build 3D deformation field:  56%|████████████████▊             | 126/225 [00:00<00:00, 175.57iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 144/225 [00:00<00:00, 175.93iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 162/225 [00:00<00:00, 176.12iter/s]
Build 3D deformation field:  80%|████████████████████████      | 180/225 [00:01<00:00, 176.15iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 198/225 [00:01<00:00, 176.16iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 216/225 [00:01<00:00, 176.20iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 225/225 [00:01<00:00, 175.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-05_20-32-49_register-wrapper_w80z1ely
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-32-49_register-wrapper_w80z1ely
rm -rf /tmp/sct_2024-11-05_20-32-50_register-slicewise_01tnjvcz

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-05_20-32-49_register-wrapper_w80z1ely
/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-05_20-32-49_register-wrapper_w80z1ely

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-05_20-32-49_register-wrapper_w80z1ely/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-05_20-32-49_register-wrapper_w80z1ely/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-05_20-32-49_register-wrapper_w80z1ely

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_05_203254.999054.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-32-57_register-wrapper_93zg40yk)

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-05_20-32-57_register-wrapper_93zg40yk

--
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-05_20-32-59_register-slicewise_sa403x1q)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 60 x 103 x 322
  voxel size: 0.7065217mm x 0.6999952mm x 322mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/322 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/322 [00:00<01:09,  4.60iter/s]
Estimate cord angle for each slice:  39%|████████▋             | 127/322 [00:00<00:00, 502.09iter/s]
Estimate cord angle for each slice:  79%|█████████████████▍    | 255/322 [00:00<00:00, 782.31iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 322/322 [00:00<00:00, 684.88iter/s]

Build 3D deformation field:   0%|                                         | 0/322 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 14/322 [00:00<00:02, 131.16iter/s]
Build 3D deformation field:   9%|██▊                            | 29/322 [00:00<00:02, 137.13iter/s]
Build 3D deformation field:  14%|████▏                          | 44/322 [00:00<00:01, 139.78iter/s]
Build 3D deformation field:  18%|█████▋                         | 59/322 [00:00<00:01, 140.65iter/s]
Build 3D deformation field:  23%|███████                        | 74/322 [00:00<00:01, 141.91iter/s]
Build 3D deformation field:  28%|████████▌                      | 89/322 [00:00<00:01, 142.92iter/s]
Build 3D deformation field:  32%|█████████▋                    | 104/322 [00:00<00:01, 142.25iter/s]
Build 3D deformation field:  37%|███████████                   | 119/322 [00:00<00:01, 142.19iter/s]
Build 3D deformation field:  42%|████████████▍                 | 134/322 [00:00<00:01, 141.80iter/s]
Build 3D deformation field:  46%|█████████████▉                | 149/322 [00:01<00:01, 142.06iter/s]
Build 3D deformation field:  51%|███████████████▎              | 164/322 [00:01<00:01, 141.95iter/s]
Build 3D deformation field:  56%|████████████████▋             | 179/322 [00:01<00:01, 141.17iter/s]
Build 3D deformation field:  60%|██████████████████            | 194/322 [00:01<00:00, 140.61iter/s]
Build 3D deformation field:  65%|███████████████████▍          | 209/322 [00:01<00:00, 140.78iter/s]
Build 3D deformation field:  70%|████████████████████▊         | 224/322 [00:01<00:00, 141.02iter/s]
Build 3D deformation field:  74%|██████████████████████▎       | 239/322 [00:01<00:00, 141.21iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 254/322 [00:01<00:00, 141.25iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 269/322 [00:01<00:00, 141.59iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 284/322 [00:02<00:00, 142.17iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 299/322 [00:02<00:00, 142.46iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 314/322 [00:02<00:00, 142.40iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 322/322 [00:02<00:00, 141.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-05_20-32-57_register-wrapper_93zg40yk
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-32-57_register-wrapper_93zg40yk
rm -rf /tmp/sct_2024-11-05_20-32-59_register-slicewise_sa403x1q

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-05_20-32-57_register-wrapper_93zg40yk
/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-05_20-32-57_register-wrapper_93zg40yk

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-05_20-32-57_register-wrapper_93zg40yk/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-05_20-32-57_register-wrapper_93zg40yk/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-05_20-32-57_register-wrapper_93zg40yk

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_05_203306.381970.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-33-09_register-wrapper_pvj0c8pr)

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-05_20-33-09_register-wrapper_pvj0c8pr

--
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-05_20-33-11_register-slicewise_hdfizhxa)

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.56iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #3 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #4 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #5 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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%|███████▊              | 119/333 [00:00<00:00, 467.94iter/s]
Estimate cord angle for each slice:  72%|███████████████▉      | 241/333 [00:00<00:00, 737.01iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 333/333 [00:00<00:00, 674.24iter/s]
Build 3D deformation field:   0%|                                         | 0/303 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                             | 12/303 [00:00<00:02, 116.89iter/s]
Build 3D deformation field:   8%|██▌                            | 25/303 [00:00<00:02, 122.09iter/s]
Build 3D deformation field:  13%|███▉                           | 38/303 [00:00<00:02, 123.42iter/s]
Build 3D deformation field:  17%|█████▏                         | 51/303 [00:00<00:02, 124.43iter/s]
Build 3D deformation field:  21%|██████▌                        | 64/303 [00:00<00:01, 124.89iter/s]
Build 3D deformation field:  25%|███████▉                       | 77/303 [00:00<00:01, 125.22iter/s]
Build 3D deformation field:  30%|█████████▏                     | 90/303 [00:00<00:01, 125.43iter/s]
Build 3D deformation field:  34%|██████████▏                   | 103/303 [00:00<00:01, 125.43iter/s]
Build 3D deformation field:  38%|███████████▍                  | 116/303 [00:00<00:01, 125.51iter/s]
Build 3D deformation field:  43%|████████████▊                 | 129/303 [00:01<00:01, 125.51iter/s]
Build 3D deformation field:  47%|██████████████                | 142/303 [00:01<00:01, 125.51iter/s]
Build 3D deformation field:  51%|███████████████▎              | 155/303 [00:01<00:01, 125.28iter/s]
Build 3D deformation field:  55%|████████████████▋             | 168/303 [00:01<00:01, 125.30iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 181/303 [00:01<00:00, 125.81iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 194/303 [00:01<00:00, 126.11iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 207/303 [00:01<00:00, 126.13iter/s]
Build 3D deformation field:  73%|█████████████████████▊        | 220/303 [00:01<00:00, 126.37iter/s]
Build 3D deformation field:  77%|███████████████████████       | 233/303 [00:01<00:00, 125.84iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 246/303 [00:01<00:00, 126.26iter/s]
Build 3D deformation field:  85%|█████████████████████████▋    | 259/303 [00:02<00:00, 126.07iter/s]
Build 3D deformation field:  90%|██████████████████████████▉   | 272/303 [00:02<00:00, 126.03iter/s]
Build 3D deformation field:  94%|████████████████████████████▏ | 285/303 [00:02<00:00, 125.43iter/s]
Build 3D deformation field:  98%|█████████████████████████████▌| 298/303 [00:02<00:00, 125.93iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 303/303 [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-05_20-33-09_register-wrapper_pvj0c8pr
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-33-09_register-wrapper_pvj0c8pr
rm -rf /tmp/sct_2024-11-05_20-33-11_register-slicewise_hdfizhxa

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-05_20-33-09_register-wrapper_pvj0c8pr
/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-05_20-33-09_register-wrapper_pvj0c8pr

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-05_20-33-09_register-wrapper_pvj0c8pr/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-05_20-33-09_register-wrapper_pvj0c8pr/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-05_20-33-09_register-wrapper_pvj0c8pr

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_05_203319.387042.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-33-22_register-wrapper_68tabwze)

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-05_20-33-22_register-wrapper_68tabwze

--
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-05_20-33-25_register-slicewise_6ukz452v)

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, 493.05iter/s]
Estimate cord angle for each slice:  86%|██████████████████▊   | 246/287 [00:00<00:00, 761.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 #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, 654.24iter/s]

Build 3D deformation field:   0%|                                         | 0/262 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/262 [00:00<00:02, 98.95iter/s]
Build 3D deformation field:   8%|██▍                            | 21/262 [00:00<00:02, 103.48iter/s]
Build 3D deformation field:  12%|███▊                           | 32/262 [00:00<00:02, 104.52iter/s]
Build 3D deformation field:  16%|█████                          | 43/262 [00:00<00:02, 105.29iter/s]
Build 3D deformation field:  21%|██████▍                        | 54/262 [00:00<00:01, 105.97iter/s]
Build 3D deformation field:  25%|███████▋                       | 65/262 [00:00<00:01, 106.79iter/s]
Build 3D deformation field:  29%|████████▉                      | 76/262 [00:00<00:01, 106.99iter/s]
Build 3D deformation field:  33%|██████████▎                    | 87/262 [00:00<00:01, 107.01iter/s]
Build 3D deformation field:  37%|███████████▌                   | 98/262 [00:00<00:01, 107.57iter/s]
Build 3D deformation field:  42%|████████████▍                 | 109/262 [00:01<00:01, 108.01iter/s]
Build 3D deformation field:  46%|█████████████▊                | 121/262 [00:01<00:01, 109.45iter/s]
Build 3D deformation field:  50%|███████████████               | 132/262 [00:01<00:01, 109.05iter/s]
Build 3D deformation field:  55%|████████████████▎             | 143/262 [00:01<00:01, 109.25iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 154/262 [00:01<00:00, 109.03iter/s]
Build 3D deformation field:  63%|██████████████████▉           | 165/262 [00:01<00:00, 109.15iter/s]
Build 3D deformation field:  67%|████████████████████▏         | 176/262 [00:01<00:00, 108.37iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 188/262 [00:01<00:00, 109.06iter/s]
Build 3D deformation field:  76%|██████████████████████▊       | 199/262 [00:01<00:00, 108.37iter/s]
Build 3D deformation field:  80%|████████████████████████      | 210/262 [00:01<00:00, 108.45iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 221/262 [00:02<00:00, 107.84iter/s]
Build 3D deformation field:  89%|██████████████████████████▌   | 232/262 [00:02<00:00, 107.55iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 243/262 [00:02<00:00, 107.43iter/s]
Build 3D deformation field:  97%|█████████████████████████████ | 254/262 [00:02<00:00, 107.22iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 262/262 [00:02<00:00, 107.51iter/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-05_20-33-22_register-wrapper_68tabwze
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-33-22_register-wrapper_68tabwze
rm -rf /tmp/sct_2024-11-05_20-33-25_register-slicewise_6ukz452v

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-05_20-33-22_register-wrapper_68tabwze
/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-05_20-33-22_register-wrapper_68tabwze

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-05_20-33-22_register-wrapper_68tabwze/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-05_20-33-22_register-wrapper_68tabwze/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-05_20-33-22_register-wrapper_68tabwze

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_05_203332.435259.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-33-35_register-wrapper_yzb9r8nn)

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-05_20-33-35_register-wrapper_yzb9r8nn

--
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-05_20-33-38_register-slicewise_u7iqxcll)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 115 x 300
  voxel size: 0.7065217mm x 0.7mm x 300mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/300 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/300 [00:00<01:04,  4.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.
Estimate cord angle for each slice:  41%|█████████             | 123/300 [00:00<00:00, 487.90iter/s]
Estimate cord angle for each slice:  82%|██████████████████    | 247/300 [00:00<00:00, 759.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 #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, 669.86iter/s]

Build 3D deformation field:   0%|                                         | 0/260 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 11/260 [00:00<00:02, 103.65iter/s]
Build 3D deformation field:   9%|██▋                            | 23/260 [00:00<00:02, 108.24iter/s]
Build 3D deformation field:  13%|████▏                          | 35/260 [00:00<00:02, 110.69iter/s]
Build 3D deformation field:  18%|█████▌                         | 47/260 [00:00<00:01, 111.38iter/s]
Build 3D deformation field:  23%|███████                        | 59/260 [00:00<00:01, 111.61iter/s]
Build 3D deformation field:  27%|████████▍                      | 71/260 [00:00<00:01, 111.96iter/s]
Build 3D deformation field:  32%|█████████▉                     | 83/260 [00:00<00:01, 112.35iter/s]
Build 3D deformation field:  37%|███████████▎                   | 95/260 [00:00<00:01, 112.20iter/s]
Build 3D deformation field:  41%|████████████▎                 | 107/260 [00:00<00:01, 111.96iter/s]
Build 3D deformation field:  46%|█████████████▋                | 119/260 [00:01<00:01, 111.84iter/s]
Build 3D deformation field:  50%|███████████████               | 131/260 [00:01<00:01, 111.29iter/s]
Build 3D deformation field:  55%|████████████████▌             | 143/260 [00:01<00:01, 111.08iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 155/260 [00:01<00:00, 110.77iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 167/260 [00:01<00:00, 111.46iter/s]
Build 3D deformation field:  69%|████████████████████▋         | 179/260 [00:01<00:00, 111.40iter/s]
Build 3D deformation field:  73%|██████████████████████        | 191/260 [00:01<00:00, 112.08iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 203/260 [00:01<00:00, 112.33iter/s]
Build 3D deformation field:  83%|████████████████████████▊     | 215/260 [00:01<00:00, 112.30iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 227/260 [00:02<00:00, 112.18iter/s]
Build 3D deformation field:  92%|███████████████████████████▌  | 239/260 [00:02<00:00, 111.78iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 251/260 [00:02<00:00, 111.82iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 260/260 [00:02<00:00, 111.50iter/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-05_20-33-35_register-wrapper_yzb9r8nn
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_20-33-35_register-wrapper_yzb9r8nn
rm -rf /tmp/sct_2024-11-05_20-33-38_register-slicewise_u7iqxcll

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-05_20-33-35_register-wrapper_yzb9r8nn
/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-05_20-33-35_register-wrapper_yzb9r8nn

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-05_20-33-35_register-wrapper_yzb9r8nn/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-05_20-33-35_register-wrapper_yzb9r8nn/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-05_20-33-35_register-wrapper_yzb9r8nn

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_05_203345.481755.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-33-48_register-wrapper_xn8s6cr5)

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-05_20-33-48_register-wrapper_xn8s6cr5

--
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-05_20-33-48_register-wrapper_xn8s6cr5

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-05_20-33-48_register-wrapper_xn8s6cr5
/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-05_20-33-48_register-wrapper_xn8s6cr5

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-05_20-33-48_register-wrapper_xn8s6cr5/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-05_20-33-48_register-wrapper_xn8s6cr5/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-05_20-33-48_register-wrapper_xn8s6cr5

Finished! Elapsed time: 109s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2024_11_05_203537.993580.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-35-40_register-wrapper_8tykv03k)

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-05_20-35-40_register-wrapper_8tykv03k

--
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-05_20-35-40_register-wrapper_8tykv03k

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-05_20-35-40_register-wrapper_8tykv03k
/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-05_20-35-40_register-wrapper_8tykv03k

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-05_20-35-40_register-wrapper_8tykv03k/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-05_20-35-40_register-wrapper_8tykv03k/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-05_20-35-40_register-wrapper_8tykv03k

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_05_203705.006839.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-37-07_register-wrapper_yeogfnrr)

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-05_20-37-07_register-wrapper_yeogfnrr

--
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-05_20-37-07_register-wrapper_yeogfnrr

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-05_20-37-07_register-wrapper_yeogfnrr
/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-05_20-37-07_register-wrapper_yeogfnrr

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-05_20-37-07_register-wrapper_yeogfnrr/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-05_20-37-07_register-wrapper_yeogfnrr/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-05_20-37-07_register-wrapper_yeogfnrr

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_05_203930.475126.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-39-33_register-wrapper_wio6xspt)

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-05_20-39-33_register-wrapper_wio6xspt

--
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-05_20-39-33_register-wrapper_wio6xspt

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-05_20-39-33_register-wrapper_wio6xspt
/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-05_20-39-33_register-wrapper_wio6xspt

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-05_20-39-33_register-wrapper_wio6xspt/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-05_20-39-33_register-wrapper_wio6xspt/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-05_20-39-33_register-wrapper_wio6xspt

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_05_204043.028543.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-40-46_register-wrapper_8l7gjcsr)

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-05_20-40-46_register-wrapper_8l7gjcsr

--
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-05_20-40-46_register-wrapper_8l7gjcsr

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-05_20-40-46_register-wrapper_8l7gjcsr
/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-05_20-40-46_register-wrapper_8l7gjcsr

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-05_20-40-46_register-wrapper_8l7gjcsr/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-05_20-40-46_register-wrapper_8l7gjcsr/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-05_20-40-46_register-wrapper_8l7gjcsr

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_05_204156.706221.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-41-59_register-wrapper_k7amog8o)

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-05_20-41-59_register-wrapper_k7amog8o

--
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-05_20-41-59_register-wrapper_k7amog8o

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-05_20-41-59_register-wrapper_k7amog8o
/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-05_20-41-59_register-wrapper_k7amog8o

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-05_20-41-59_register-wrapper_k7amog8o/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-05_20-41-59_register-wrapper_k7amog8o/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-05_20-41-59_register-wrapper_k7amog8o

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_05_204319.044734.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-43-22_register-wrapper_56rpl1ap)

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-05_20-43-22_register-wrapper_56rpl1ap

--
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-05_20-43-22_register-wrapper_56rpl1ap

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-05_20-43-22_register-wrapper_56rpl1ap
/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-05_20-43-22_register-wrapper_56rpl1ap

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-05_20-43-22_register-wrapper_56rpl1ap/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-05_20-43-22_register-wrapper_56rpl1ap/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-05_20-43-22_register-wrapper_56rpl1ap

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_05_204452.573405.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-44-55_register-wrapper_goyn0i53)

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-05_20-44-55_register-wrapper_goyn0i53

--
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-05_20-44-55_register-wrapper_goyn0i53

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-05_20-44-55_register-wrapper_goyn0i53
/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-05_20-44-55_register-wrapper_goyn0i53

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-05_20-44-55_register-wrapper_goyn0i53/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-05_20-44-55_register-wrapper_goyn0i53/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-05_20-44-55_register-wrapper_goyn0i53

Finished! Elapsed time: 88s

*** 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_05_204623.876023.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-46-26_register-wrapper_4ueix7p2)

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-05_20-46-26_register-wrapper_4ueix7p2

--
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-05_20-46-26_register-wrapper_4ueix7p2

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-05_20-46-26_register-wrapper_4ueix7p2
/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-05_20-46-26_register-wrapper_4ueix7p2

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-05_20-46-26_register-wrapper_4ueix7p2/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-05_20-46-26_register-wrapper_4ueix7p2/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-05_20-46-26_register-wrapper_4ueix7p2

Finished! Elapsed time: 118s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2024_11_05_204824.630982.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-48-27_register-wrapper_746leuj2)

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-05_20-48-27_register-wrapper_746leuj2

--
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-05_20-48-27_register-wrapper_746leuj2

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-05_20-48-27_register-wrapper_746leuj2
/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-05_20-48-27_register-wrapper_746leuj2

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-05_20-48-27_register-wrapper_746leuj2/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-05_20-48-27_register-wrapper_746leuj2/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-05_20-48-27_register-wrapper_746leuj2

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_05_205004.726987.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-50-07_register-wrapper_jo_0gwu0)

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-05_20-50-07_register-wrapper_jo_0gwu0

--
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-05_20-50-07_register-wrapper_jo_0gwu0

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-05_20-50-07_register-wrapper_jo_0gwu0
/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-05_20-50-07_register-wrapper_jo_0gwu0

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-05_20-50-07_register-wrapper_jo_0gwu0/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-05_20-50-07_register-wrapper_jo_0gwu0/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-05_20-50-07_register-wrapper_jo_0gwu0

Finished! Elapsed time: 88s

*** 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_05_205134.843321.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-51-37_register-wrapper_vnmfiz1s)

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-05_20-51-37_register-wrapper_vnmfiz1s

--
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-05_20-51-37_register-wrapper_vnmfiz1s

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-05_20-51-37_register-wrapper_vnmfiz1s
/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-05_20-51-37_register-wrapper_vnmfiz1s

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-05_20-51-37_register-wrapper_vnmfiz1s/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-05_20-51-37_register-wrapper_vnmfiz1s/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-05_20-51-37_register-wrapper_vnmfiz1s

Finished! Elapsed time: 142s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2024_11_05_205359.291249.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-54-02_register-wrapper_yz7yasaj)

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-05_20-54-02_register-wrapper_yz7yasaj

--
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-05_20-54-02_register-wrapper_yz7yasaj

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-05_20-54-02_register-wrapper_yz7yasaj
/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-05_20-54-02_register-wrapper_yz7yasaj

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-05_20-54-02_register-wrapper_yz7yasaj/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-05_20-54-02_register-wrapper_yz7yasaj/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-05_20-54-02_register-wrapper_yz7yasaj

Finished! Elapsed time: 54s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2024_11_05_205455.900127.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-54-58_register-wrapper_w53dhvry)

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-05_20-54-58_register-wrapper_w53dhvry

--
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-05_20-54-58_register-wrapper_w53dhvry

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-05_20-54-58_register-wrapper_w53dhvry
/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-05_20-54-58_register-wrapper_w53dhvry

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-05_20-54-58_register-wrapper_w53dhvry/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-05_20-54-58_register-wrapper_w53dhvry/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-05_20-54-58_register-wrapper_w53dhvry

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_05_205601.078978.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-56-03_register-wrapper_0rglppzu)

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-05_20-56-03_register-wrapper_0rglppzu

--
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-05_20-56-03_register-wrapper_0rglppzu

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-05_20-56-03_register-wrapper_0rglppzu
/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-05_20-56-03_register-wrapper_0rglppzu

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-05_20-56-03_register-wrapper_0rglppzu/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-05_20-56-03_register-wrapper_0rglppzu/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-05_20-56-03_register-wrapper_0rglppzu

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_05_205750.265186.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-57-53_register-wrapper_u7fcfs3t)

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-05_20-57-53_register-wrapper_u7fcfs3t

--
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-05_20-57-53_register-wrapper_u7fcfs3t

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-05_20-57-53_register-wrapper_u7fcfs3t
/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-05_20-57-53_register-wrapper_u7fcfs3t

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-05_20-57-53_register-wrapper_u7fcfs3t/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-05_20-57-53_register-wrapper_u7fcfs3t/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-05_20-57-53_register-wrapper_u7fcfs3t

Finished! Elapsed time: 73s

*** 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_05_205905.912843.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_20-59-08_register-wrapper_2njh3mbn)

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-05_20-59-08_register-wrapper_2njh3mbn

--
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-05_20-59-08_register-wrapper_2njh3mbn

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-05_20-59-08_register-wrapper_2njh3mbn
/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-05_20-59-08_register-wrapper_2njh3mbn

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-05_20-59-08_register-wrapper_2njh3mbn/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-05_20-59-08_register-wrapper_2njh3mbn/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-05_20-59-08_register-wrapper_2njh3mbn

Finished! Elapsed time: 77s

*** 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_05_210025.242273.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-00-27_register-wrapper_q8v346na)

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-05_21-00-27_register-wrapper_q8v346na

--
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-05_21-00-27_register-wrapper_q8v346na

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-05_21-00-27_register-wrapper_q8v346na
/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-05_21-00-27_register-wrapper_q8v346na

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-05_21-00-27_register-wrapper_q8v346na/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-05_21-00-27_register-wrapper_q8v346na/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-05_21-00-27_register-wrapper_q8v346na

Finished! Elapsed time: 109s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
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_05_210216.081177.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-02-19_register-wrapper_cksnyfkq)

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-05_21-02-19_register-wrapper_cksnyfkq

--
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-05_21-02-19_register-wrapper_cksnyfkq

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-05_21-02-19_register-wrapper_cksnyfkq
/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-05_21-02-19_register-wrapper_cksnyfkq

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-05_21-02-19_register-wrapper_cksnyfkq/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-05_21-02-19_register-wrapper_cksnyfkq/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-05_21-02-19_register-wrapper_cksnyfkq

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_05_210418.898258.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-04-22_register-wrapper_qbupylnl)

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-05_21-04-22_register-wrapper_qbupylnl

--
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-05_21-04-22_register-wrapper_qbupylnl

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-05_21-04-22_register-wrapper_qbupylnl
/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-05_21-04-22_register-wrapper_qbupylnl

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-05_21-04-22_register-wrapper_qbupylnl/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-05_21-04-22_register-wrapper_qbupylnl/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-05_21-04-22_register-wrapper_qbupylnl

Finished! Elapsed time: 112s

*** Generating Quality Control (QC) html report ***
Resample images to 0.600000x0.600000 mm
Converting image from type 'int16' to type 'float64' for spline interpolation
Find the center of each slice
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/scipy/ndimage/_measurements.py:1542: RuntimeWarning: invalid value encountered in scalar divide
  results = [sum(input * grids[dir].astype(float), labels, index) / normalizer
Successfully generated the QC results in /home/runner/work/coil-qc-code/coil-qc-code/data-human/qc/_json/qc_2024_11_05_210614.014616.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-06-17_register-wrapper_59eizisb)

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-05_21-06-17_register-wrapper_59eizisb

--
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-05_21-06-17_register-wrapper_59eizisb

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-05_21-06-17_register-wrapper_59eizisb
/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-05_21-06-17_register-wrapper_59eizisb

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-05_21-06-17_register-wrapper_59eizisb/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-05_21-06-17_register-wrapper_59eizisb/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-05_21-06-17_register-wrapper_59eizisb

Finished! Elapsed time: 134s

*** 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_05_210831.098495.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-08-41_sct_deepseg_js1gcvjy)
Copied sub-CRMBM1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-08-41_sct_deepseg_js1gcvjy/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-08-41_sct_deepseg_js1gcvjy/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_05_210906.530746.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-09-17_sct_deepseg_hs7a16qo)
Copied sub-CRMBM2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-09-17_sct_deepseg_hs7a16qo/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-09-17_sct_deepseg_hs7a16qo/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_05_210942.593975.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-09-53_sct_deepseg_dpi7glw2)
Copied sub-CRMBM3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-09-53_sct_deepseg_dpi7glw2/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-05_21-09-53_sct_deepseg_dpi7glw2/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_05_211018.287958.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-10-29_sct_deepseg_el1gq60d)
Copied sub-MGH1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-10-29_sct_deepseg_el1gq60d/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-05_21-10-29_sct_deepseg_el1gq60d/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_05_211054.086893.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-11-05_sct_deepseg_srd5ul54)
Copied sub-MGH2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-11-05_sct_deepseg_srd5ul54/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-05_21-11-05_sct_deepseg_srd5ul54/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_05_211129.706997.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-11-40_sct_deepseg_hcjhb_mc)
Copied sub-MGH3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-11-40_sct_deepseg_hcjhb_mc/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-05_21-11-40_sct_deepseg_hcjhb_mc/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_05_211205.265980.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-12-16_sct_deepseg_1ld05o7q)
Copied sub-MNI1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-12-16_sct_deepseg_1ld05o7q/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-12-16_sct_deepseg_1ld05o7q/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_05_211240.895609.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-12-51_sct_deepseg_skq4y0cz)
Copied sub-MNI2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-12-51_sct_deepseg_skq4y0cz/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-12-51_sct_deepseg_skq4y0cz/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_05_211316.976313.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-13-28_sct_deepseg__r41ylv3)
Copied sub-MNI3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-13-28_sct_deepseg__r41ylv3/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-13-28_sct_deepseg__r41ylv3/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_05_211353.767889.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-14-05_sct_deepseg_o4kz5ng9)
Copied sub-MPI1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-14-05_sct_deepseg_o4kz5ng9/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-14-05_sct_deepseg_o4kz5ng9/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_05_211430.412998.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-14-42_sct_deepseg_eez0zs60)
Copied sub-MPI2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-14-42_sct_deepseg_eez0zs60/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-14-42_sct_deepseg_eez0zs60/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_05_211507.238586.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-15-18_sct_deepseg_d2r9bdvv)
Copied sub-MPI3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-15-18_sct_deepseg_d2r9bdvv/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-15-18_sct_deepseg_d2r9bdvv/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_05_211543.683915.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-15-55_sct_deepseg_ns2mpreq)
Copied sub-MSSM1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-15-55_sct_deepseg_ns2mpreq/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-15-55_sct_deepseg_ns2mpreq/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_05_211620.078995.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-16-31_sct_deepseg_c58ruqge)
Copied sub-MSSM2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-16-31_sct_deepseg_c58ruqge/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-16-31_sct_deepseg_c58ruqge/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_05_211656.101707.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-17-07_sct_deepseg_7czbvanh)
Copied sub-MSSM3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-17-07_sct_deepseg_7czbvanh/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-17-07_sct_deepseg_7czbvanh/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_05_211732.163625.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-17-43_sct_deepseg_xg_sd59i)
Copied sub-NTNU1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-17-43_sct_deepseg_xg_sd59i/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-17-43_sct_deepseg_xg_sd59i/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_05_211808.389531.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-18-20_sct_deepseg_rzgi50xr)
Copied sub-NTNU2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-18-20_sct_deepseg_rzgi50xr/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-18-20_sct_deepseg_rzgi50xr/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_05_211845.000516.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-18-56_sct_deepseg_wplivl6h)
Copied sub-NTNU3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-18-56_sct_deepseg_wplivl6h/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-18-56_sct_deepseg_wplivl6h/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_05_211921.511758.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-19-33_sct_deepseg_nj_iih4j)
Copied sub-UCL1_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-19-33_sct_deepseg_nj_iih4j/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-19-33_sct_deepseg_nj_iih4j/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_05_211958.324072.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-20-09_sct_deepseg_zhktaoj4)
Copied sub-UCL2_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-20-09_sct_deepseg_zhktaoj4/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-20-09_sct_deepseg_zhktaoj4/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_05_212034.919691.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-20-46_sct_deepseg_twtjplqy)
Copied sub-UCL3_acq-coilQaSagLarge_SNR_T0000.nii.gz to /tmp/sct_2024-11-05_21-20-46_sct_deepseg_twtjplqy/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) 24 seconds
Saving results to: /tmp/sct_2024-11-05_21-20-46_sct_deepseg_twtjplqy/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_05_212112.055633.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-21-16_register-wrapper_yuwc_bdi)

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-05_21-21-16_register-wrapper_yuwc_bdi

--
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-05_21-21-18_register-slicewise_cmnc5rfi)

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:16,  4.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 #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%|████████▍             | 121/314 [00:00<00:00, 444.87iter/s]
Estimate cord angle for each slice:  78%|█████████████████     | 244/314 [00:00<00:00, 715.38iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 642.16iter/s]

Build 3D deformation field:   0%|                                         | 0/261 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▌                             | 13/261 [00:00<00:01, 124.24iter/s]
Build 3D deformation field:  10%|███▏                           | 27/261 [00:00<00:01, 127.82iter/s]
Build 3D deformation field:  16%|████▊                          | 41/261 [00:00<00:01, 129.99iter/s]
Build 3D deformation field:  21%|██████▌                        | 55/261 [00:00<00:01, 131.86iter/s]
Build 3D deformation field:  26%|████████▏                      | 69/261 [00:00<00:01, 131.90iter/s]
Build 3D deformation field:  32%|█████████▊                     | 83/261 [00:00<00:01, 132.25iter/s]
Build 3D deformation field:  37%|███████████▌                   | 97/261 [00:00<00:01, 131.98iter/s]
Build 3D deformation field:  43%|████████████▊                 | 111/261 [00:00<00:01, 131.69iter/s]
Build 3D deformation field:  48%|██████████████▎               | 125/261 [00:00<00:01, 131.38iter/s]
Build 3D deformation field:  53%|███████████████▉              | 139/261 [00:01<00:00, 130.31iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 153/261 [00:01<00:00, 130.52iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 167/261 [00:01<00:00, 129.29iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 181/261 [00:01<00:00, 130.33iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 195/261 [00:01<00:00, 131.61iter/s]
Build 3D deformation field:  80%|████████████████████████      | 209/261 [00:01<00:00, 131.47iter/s]
Build 3D deformation field:  85%|█████████████████████████▋    | 223/261 [00:01<00:00, 131.55iter/s]
Build 3D deformation field:  91%|███████████████████████████▏  | 237/261 [00:01<00:00, 132.18iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 251/261 [00:01<00:00, 132.01iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 261/261 [00:01<00:00, 131.19iter/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-05_21-21-16_register-wrapper_yuwc_bdi
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-21-16_register-wrapper_yuwc_bdi
rm -rf /tmp/sct_2024-11-05_21-21-18_register-slicewise_cmnc5rfi

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-05_21-21-16_register-wrapper_yuwc_bdi
/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-05_21-21-16_register-wrapper_yuwc_bdi

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-05_21-21-16_register-wrapper_yuwc_bdi/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-05_21-21-16_register-wrapper_yuwc_bdi/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-05_21-21-16_register-wrapper_yuwc_bdi

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_05_212125.359095.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-21-28_register-wrapper_qk3p3df0)

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-05_21-21-28_register-wrapper_qk3p3df0

--
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-05_21-21-30_register-slicewise_h2o0o81h)

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:54,  4.14iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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:  54%|███████████▉          | 122/226 [00:00<00:00, 452.47iter/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, 532.98iter/s]

Build 3D deformation field:   0%|                                         | 0/214 [00:00<?, ?iter/s]
Build 3D deformation field:   7%|██                             | 14/214 [00:00<00:01, 136.23iter/s]
Build 3D deformation field:  14%|████▏                          | 29/214 [00:00<00:01, 140.50iter/s]
Build 3D deformation field:  21%|██████▎                        | 44/214 [00:00<00:01, 142.09iter/s]
Build 3D deformation field:  28%|████████▌                      | 59/214 [00:00<00:01, 140.39iter/s]
Build 3D deformation field:  35%|██████████▋                    | 74/214 [00:00<00:00, 141.57iter/s]
Build 3D deformation field:  42%|████████████▉                  | 89/214 [00:00<00:00, 142.34iter/s]
Build 3D deformation field:  49%|██████████████▌               | 104/214 [00:00<00:00, 143.12iter/s]
Build 3D deformation field:  56%|████████████████▋             | 119/214 [00:00<00:00, 143.56iter/s]
Build 3D deformation field:  63%|██████████████████▊           | 134/214 [00:00<00:00, 143.85iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 149/214 [00:01<00:00, 143.79iter/s]
Build 3D deformation field:  77%|██████████████████████▉       | 164/214 [00:01<00:00, 143.67iter/s]
Build 3D deformation field:  84%|█████████████████████████     | 179/214 [00:01<00:00, 143.63iter/s]
Build 3D deformation field:  91%|███████████████████████████▏  | 194/214 [00:01<00:00, 143.52iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 209/214 [00:01<00:00, 143.62iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 214/214 [00:01<00:00, 142.86iter/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-05_21-21-28_register-wrapper_qk3p3df0
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-21-28_register-wrapper_qk3p3df0
rm -rf /tmp/sct_2024-11-05_21-21-30_register-slicewise_h2o0o81h

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-05_21-21-28_register-wrapper_qk3p3df0
/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-05_21-21-28_register-wrapper_qk3p3df0

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-05_21-21-28_register-wrapper_qk3p3df0/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-05_21-21-28_register-wrapper_qk3p3df0/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-05_21-21-28_register-wrapper_qk3p3df0

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_05_212135.011073.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-21-37_register-wrapper_5422_45k)

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-05_21-21-37_register-wrapper_5422_45k

--
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-05_21-21-40_register-slicewise_qauwz0l_)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 69 x 121 x 337
  voxel size: 0.7065217mm x 0.6999998mm x 337mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/337 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/337 [00:00<01:16,  4.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 #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:  32%|███████               | 109/337 [00:00<00:00, 417.45iter/s]
Estimate cord angle for each slice:  68%|██████████████▉       | 229/337 [00:00<00:00, 693.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 #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, 660.16iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   3%|█▏                               | 9/263 [00:00<00:02, 88.99iter/s]
Build 3D deformation field:   7%|██▎                             | 19/263 [00:00<00:02, 94.98iter/s]
Build 3D deformation field:  11%|███▌                            | 29/263 [00:00<00:02, 96.26iter/s]
Build 3D deformation field:  15%|████▋                           | 39/263 [00:00<00:02, 96.64iter/s]
Build 3D deformation field:  19%|█████▉                          | 49/263 [00:00<00:02, 96.46iter/s]
Build 3D deformation field:  22%|███████▏                        | 59/263 [00:00<00:02, 96.71iter/s]
Build 3D deformation field:  26%|████████▍                       | 69/263 [00:00<00:02, 96.78iter/s]
Build 3D deformation field:  30%|█████████▌                      | 79/263 [00:00<00:01, 96.71iter/s]
Build 3D deformation field:  34%|██████████▊                     | 89/263 [00:00<00:01, 97.24iter/s]
Build 3D deformation field:  38%|████████████                    | 99/263 [00:01<00:01, 96.45iter/s]
Build 3D deformation field:  41%|████████████▊                  | 109/263 [00:01<00:01, 96.44iter/s]
Build 3D deformation field:  45%|██████████████                 | 119/263 [00:01<00:01, 97.19iter/s]
Build 3D deformation field:  49%|███████████████▏               | 129/263 [00:01<00:01, 97.49iter/s]
Build 3D deformation field:  53%|████████████████▍              | 139/263 [00:01<00:01, 97.65iter/s]
Build 3D deformation field:  57%|█████████████████▌             | 149/263 [00:01<00:01, 97.59iter/s]
Build 3D deformation field:  60%|██████████████████▋            | 159/263 [00:01<00:01, 97.56iter/s]
Build 3D deformation field:  64%|███████████████████▉           | 169/263 [00:01<00:00, 98.24iter/s]
Build 3D deformation field:  68%|█████████████████████          | 179/263 [00:01<00:00, 98.55iter/s]
Build 3D deformation field:  72%|██████████████████████▎        | 189/263 [00:01<00:00, 98.38iter/s]
Build 3D deformation field:  76%|███████████████████████▍       | 199/263 [00:02<00:00, 97.67iter/s]
Build 3D deformation field:  79%|████████████████████████▋      | 209/263 [00:02<00:00, 97.62iter/s]
Build 3D deformation field:  84%|█████████████████████████▉     | 220/263 [00:02<00:00, 98.51iter/s]
Build 3D deformation field:  87%|███████████████████████████    | 230/263 [00:02<00:00, 98.65iter/s]
Build 3D deformation field:  91%|████████████████████████████▎  | 240/263 [00:02<00:00, 98.80iter/s]
Build 3D deformation field:  95%|█████████████████████████████▍ | 250/263 [00:02<00:00, 98.11iter/s]
Build 3D deformation field:  99%|██████████████████████████████▋| 260/263 [00:02<00:00, 97.55iter/s]
Build 3D deformation field: 100%|███████████████████████████████| 263/263 [00:02<00:00, 97.36iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2024-11-05_21-21-37_register-wrapper_5422_45k
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-21-37_register-wrapper_5422_45k
rm -rf /tmp/sct_2024-11-05_21-21-40_register-slicewise_qauwz0l_

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-05_21-21-37_register-wrapper_5422_45k
/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-05_21-21-37_register-wrapper_5422_45k

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-05_21-21-37_register-wrapper_5422_45k/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-05_21-21-37_register-wrapper_5422_45k/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-05_21-21-37_register-wrapper_5422_45k

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_05_212149.339867.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-21-52_register-wrapper_8sv8pkk8)

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-05_21-21-52_register-wrapper_8sv8pkk8

--
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-05_21-21-54_register-slicewise_hilj_ds3)

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:53,  4.24iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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:  57%|████████████▌         | 129/226 [00:00<00:00, 484.66iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 226/226 [00:00<00:00, 543.35iter/s]

Build 3D deformation field:   0%|                                         | 0/189 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 11/189 [00:00<00:01, 108.43iter/s]
Build 3D deformation field:  12%|███▊                           | 23/189 [00:00<00:01, 113.67iter/s]
Build 3D deformation field:  19%|█████▋                         | 35/189 [00:00<00:01, 115.54iter/s]
Build 3D deformation field:  25%|███████▋                       | 47/189 [00:00<00:01, 115.86iter/s]
Build 3D deformation field:  31%|█████████▋                     | 59/189 [00:00<00:01, 116.09iter/s]
Build 3D deformation field:  38%|███████████▋                   | 71/189 [00:00<00:01, 116.26iter/s]
Build 3D deformation field:  44%|█████████████▌                 | 83/189 [00:00<00:00, 116.17iter/s]
Build 3D deformation field:  50%|███████████████▌               | 95/189 [00:00<00:00, 116.21iter/s]
Build 3D deformation field:  57%|████████████████▉             | 107/189 [00:00<00:00, 116.23iter/s]
Build 3D deformation field:  63%|██████████████████▉           | 119/189 [00:01<00:00, 116.30iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 131/189 [00:01<00:00, 116.24iter/s]
Build 3D deformation field:  76%|██████████████████████▋       | 143/189 [00:01<00:00, 116.54iter/s]
Build 3D deformation field:  82%|████████████████████████▌     | 155/189 [00:01<00:00, 116.94iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 167/189 [00:01<00:00, 117.03iter/s]
Build 3D deformation field:  95%|████████████████████████████▍ | 179/189 [00:01<00:00, 117.00iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 189/189 [00:01<00:00, 116.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-05_21-21-52_register-wrapper_8sv8pkk8
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-21-52_register-wrapper_8sv8pkk8
rm -rf /tmp/sct_2024-11-05_21-21-54_register-slicewise_hilj_ds3

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-05_21-21-52_register-wrapper_8sv8pkk8
/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-05_21-21-52_register-wrapper_8sv8pkk8

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-05_21-21-52_register-wrapper_8sv8pkk8/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-05_21-21-52_register-wrapper_8sv8pkk8/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-05_21-21-52_register-wrapper_8sv8pkk8

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_05_212159.775409.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-22-03_register-wrapper_l9t2oq5d)

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-05_21-22-03_register-wrapper_l9t2oq5d

--
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-05_21-22-04_register-slicewise_9etf96zc)

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:52,  4.22iter/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:  56%|████████████▏         | 124/223 [00:00<00:00, 465.16iter/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, 539.02iter/s]

Build 3D deformation field:   0%|                                         | 0/208 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 12/208 [00:00<00:01, 117.00iter/s]
Build 3D deformation field:  12%|███▋                           | 25/208 [00:00<00:01, 120.63iter/s]
Build 3D deformation field:  18%|█████▋                         | 38/208 [00:00<00:01, 121.70iter/s]
Build 3D deformation field:  25%|███████▌                       | 51/208 [00:00<00:01, 121.89iter/s]
Build 3D deformation field:  31%|█████████▌                     | 64/208 [00:00<00:01, 122.45iter/s]
Build 3D deformation field:  37%|███████████▍                   | 77/208 [00:00<00:01, 122.23iter/s]
Build 3D deformation field:  43%|█████████████▍                 | 90/208 [00:00<00:00, 122.50iter/s]
Build 3D deformation field:  50%|██████████████▊               | 103/208 [00:00<00:00, 122.61iter/s]
Build 3D deformation field:  56%|████████████████▋             | 116/208 [00:00<00:00, 122.59iter/s]
Build 3D deformation field:  62%|██████████████████▌           | 129/208 [00:01<00:00, 123.43iter/s]
Build 3D deformation field:  68%|████████████████████▍         | 142/208 [00:01<00:00, 123.58iter/s]
Build 3D deformation field:  75%|██████████████████████▎       | 155/208 [00:01<00:00, 123.42iter/s]
Build 3D deformation field:  81%|████████████████████████▏     | 168/208 [00:01<00:00, 122.74iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 181/208 [00:01<00:00, 122.67iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 194/208 [00:01<00:00, 122.21iter/s]
Build 3D deformation field: 100%|█████████████████████████████▊| 207/208 [00:01<00:00, 121.85iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 208/208 [00:01<00:00, 122.31iter/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-05_21-22-03_register-wrapper_l9t2oq5d
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-22-03_register-wrapper_l9t2oq5d
rm -rf /tmp/sct_2024-11-05_21-22-04_register-slicewise_9etf96zc

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-05_21-22-03_register-wrapper_l9t2oq5d
/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-05_21-22-03_register-wrapper_l9t2oq5d

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-05_21-22-03_register-wrapper_l9t2oq5d/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-05_21-22-03_register-wrapper_l9t2oq5d/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-05_21-22-03_register-wrapper_l9t2oq5d

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_05_212210.653992.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-22-14_register-wrapper_980zeiyl)

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-05_21-22-14_register-wrapper_980zeiyl

--
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-05_21-22-15_register-slicewise_kfxqtqn8)

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:56,  4.22iter/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:  48%|██████████▋           | 115/238 [00:00<00:00, 430.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 #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, 544.90iter/s]

Build 3D deformation field:   0%|                                         | 0/200 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 11/200 [00:00<00:01, 103.63iter/s]
Build 3D deformation field:  11%|███▍                           | 22/200 [00:00<00:01, 105.82iter/s]
Build 3D deformation field:  16%|█████                          | 33/200 [00:00<00:01, 106.42iter/s]
Build 3D deformation field:  22%|██████▊                        | 44/200 [00:00<00:01, 107.33iter/s]
Build 3D deformation field:  28%|████████▌                      | 55/200 [00:00<00:01, 107.65iter/s]
Build 3D deformation field:  33%|██████████▏                    | 66/200 [00:00<00:01, 107.24iter/s]
Build 3D deformation field:  38%|███████████▉                   | 77/200 [00:00<00:01, 106.99iter/s]
Build 3D deformation field:  44%|█████████████▋                 | 88/200 [00:00<00:01, 106.37iter/s]
Build 3D deformation field:  50%|███████████████▎               | 99/200 [00:00<00:00, 106.56iter/s]
Build 3D deformation field:  55%|████████████████▌             | 110/200 [00:01<00:00, 106.99iter/s]
Build 3D deformation field:  60%|██████████████████▏           | 121/200 [00:01<00:00, 107.40iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 132/200 [00:01<00:00, 106.88iter/s]
Build 3D deformation field:  72%|█████████████████████▍        | 143/200 [00:01<00:00, 107.26iter/s]
Build 3D deformation field:  77%|███████████████████████       | 154/200 [00:01<00:00, 107.75iter/s]
Build 3D deformation field:  82%|████████████████████████▊     | 165/200 [00:01<00:00, 107.87iter/s]
Build 3D deformation field:  88%|██████████████████████████▍   | 176/200 [00:01<00:00, 108.14iter/s]
Build 3D deformation field:  94%|████████████████████████████  | 187/200 [00:01<00:00, 107.65iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 198/200 [00:01<00:00, 107.47iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 200/200 [00:01<00:00, 107.17iter/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-05_21-22-14_register-wrapper_980zeiyl
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-22-14_register-wrapper_980zeiyl
rm -rf /tmp/sct_2024-11-05_21-22-15_register-slicewise_kfxqtqn8

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-05_21-22-14_register-wrapper_980zeiyl
/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-05_21-22-14_register-wrapper_980zeiyl

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-05_21-22-14_register-wrapper_980zeiyl/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-05_21-22-14_register-wrapper_980zeiyl/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-05_21-22-14_register-wrapper_980zeiyl

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_05_212221.729130.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-22-25_register-wrapper_ufr40hyy)

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-05_21-22-25_register-wrapper_ufr40hyy

--
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-05_21-22-27_register-slicewise_ycc5b65a)

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:25,  4.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 #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:  36%|███████▉              | 133/367 [00:00<00:00, 501.14iter/s]
Estimate cord angle for each slice:  70%|███████████████▍      | 257/367 [00:00<00:00, 759.41iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 712.76iter/s]

Build 3D deformation field:   0%|                                         | 0/320 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▋                             | 17/320 [00:00<00:01, 165.43iter/s]
Build 3D deformation field:  11%|███▎                           | 34/320 [00:00<00:01, 167.23iter/s]
Build 3D deformation field:  16%|████▉                          | 51/320 [00:00<00:01, 167.32iter/s]
Build 3D deformation field:  21%|██████▌                        | 68/320 [00:00<00:01, 166.75iter/s]
Build 3D deformation field:  27%|████████▏                      | 85/320 [00:00<00:01, 167.31iter/s]
Build 3D deformation field:  32%|█████████▌                    | 102/320 [00:00<00:01, 167.82iter/s]
Build 3D deformation field:  38%|███████████▎                  | 120/320 [00:00<00:01, 168.63iter/s]
Build 3D deformation field:  43%|████████████▊                 | 137/320 [00:00<00:01, 168.60iter/s]
Build 3D deformation field:  48%|██████████████▍               | 154/320 [00:00<00:00, 168.92iter/s]
Build 3D deformation field:  53%|████████████████              | 171/320 [00:01<00:00, 169.19iter/s]
Build 3D deformation field:  59%|█████████████████▋            | 188/320 [00:01<00:00, 169.31iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 206/320 [00:01<00:00, 169.81iter/s]
Build 3D deformation field:  70%|████████████████████▉         | 223/320 [00:01<00:00, 169.65iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 240/320 [00:01<00:00, 169.28iter/s]
Build 3D deformation field:  80%|████████████████████████      | 257/320 [00:01<00:00, 169.21iter/s]
Build 3D deformation field:  86%|█████████████████████████▋    | 274/320 [00:01<00:00, 169.38iter/s]
Build 3D deformation field:  91%|███████████████████████████▎  | 291/320 [00:01<00:00, 169.41iter/s]
Build 3D deformation field:  97%|████████████████████████████▉ | 309/320 [00:01<00:00, 170.78iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 320/320 [00:01<00:00, 169.20iter/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-05_21-22-25_register-wrapper_ufr40hyy
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-22-25_register-wrapper_ufr40hyy
rm -rf /tmp/sct_2024-11-05_21-22-27_register-slicewise_ycc5b65a

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-05_21-22-25_register-wrapper_ufr40hyy
/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-05_21-22-25_register-wrapper_ufr40hyy

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-05_21-22-25_register-wrapper_ufr40hyy/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-05_21-22-25_register-wrapper_ufr40hyy/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-05_21-22-25_register-wrapper_ufr40hyy

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_05_212233.928016.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-22-37_register-wrapper_8tor81rp)

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-05_21-22-37_register-wrapper_8tor81rp

--
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-05_21-22-38_register-slicewise_kviv5pfp)

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:22,  4.35iter/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%|███████▋              | 126/361 [00:00<00:00, 481.26iter/s]
Estimate cord angle for each slice:  70%|███████████████▎      | 251/361 [00:00<00:00, 752.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 #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, 709.06iter/s]

Build 3D deformation field:   0%|                                         | 0/327 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▋                             | 18/327 [00:00<00:01, 171.45iter/s]
Build 3D deformation field:  11%|███▌                           | 37/327 [00:00<00:01, 177.16iter/s]
Build 3D deformation field:  17%|█████▎                         | 56/327 [00:00<00:01, 179.67iter/s]
Build 3D deformation field:  23%|███████                        | 75/327 [00:00<00:01, 182.24iter/s]
Build 3D deformation field:  29%|████████▉                      | 94/327 [00:00<00:01, 182.41iter/s]
Build 3D deformation field:  35%|██████████▎                   | 113/327 [00:00<00:01, 181.80iter/s]
Build 3D deformation field:  40%|████████████                  | 132/327 [00:00<00:01, 181.76iter/s]
Build 3D deformation field:  46%|█████████████▊                | 151/327 [00:00<00:00, 181.17iter/s]
Build 3D deformation field:  52%|███████████████▌              | 170/327 [00:00<00:00, 180.53iter/s]
Build 3D deformation field:  58%|█████████████████▎            | 189/327 [00:01<00:00, 180.64iter/s]
Build 3D deformation field:  64%|███████████████████           | 208/327 [00:01<00:00, 180.54iter/s]
Build 3D deformation field:  69%|████████████████████▊         | 227/327 [00:01<00:00, 180.65iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 246/327 [00:01<00:00, 180.55iter/s]
Build 3D deformation field:  81%|████████████████████████▎     | 265/327 [00:01<00:00, 180.09iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 284/327 [00:01<00:00, 179.55iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 302/327 [00:01<00:00, 179.35iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 321/327 [00:01<00:00, 180.05iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 327/327 [00:01<00:00, 180.34iter/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-05_21-22-37_register-wrapper_8tor81rp
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-22-37_register-wrapper_8tor81rp
rm -rf /tmp/sct_2024-11-05_21-22-38_register-slicewise_kviv5pfp

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-05_21-22-37_register-wrapper_8tor81rp
/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-05_21-22-37_register-wrapper_8tor81rp

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-05_21-22-37_register-wrapper_8tor81rp/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-05_21-22-37_register-wrapper_8tor81rp/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-05_21-22-37_register-wrapper_8tor81rp

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_05_212245.180576.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-22-48_register-wrapper_hf61ffz7)

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-05_21-22-48_register-wrapper_hf61ffz7

--
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-05_21-22-50_register-slicewise_axg2231o)

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:59,  4.32iter/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:  46%|██████████            | 119/260 [00:00<00:00, 452.89iter/s]
Estimate cord angle for each slice:  93%|████████████████████▍ | 242/260 [00:00<00:00, 726.95iter/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, 580.88iter/s]

Build 3D deformation field:   0%|                                         | 0/252 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▍                             | 12/252 [00:00<00:02, 113.37iter/s]
Build 3D deformation field:  10%|███                            | 25/252 [00:00<00:01, 121.08iter/s]
Build 3D deformation field:  15%|████▋                          | 38/252 [00:00<00:01, 123.85iter/s]
Build 3D deformation field:  20%|██████▎                        | 51/252 [00:00<00:01, 123.69iter/s]
Build 3D deformation field:  25%|███████▊                       | 64/252 [00:00<00:01, 123.38iter/s]
Build 3D deformation field:  31%|█████████▍                     | 77/252 [00:00<00:01, 121.46iter/s]
Build 3D deformation field:  36%|███████████                    | 90/252 [00:00<00:01, 121.67iter/s]
Build 3D deformation field:  41%|████████████▎                 | 103/252 [00:00<00:01, 122.37iter/s]
Build 3D deformation field:  46%|█████████████▊                | 116/252 [00:00<00:01, 122.49iter/s]
Build 3D deformation field:  51%|███████████████▎              | 129/252 [00:01<00:01, 122.53iter/s]
Build 3D deformation field:  56%|████████████████▉             | 142/252 [00:01<00:00, 122.48iter/s]
Build 3D deformation field:  62%|██████████████████▍           | 155/252 [00:01<00:00, 122.57iter/s]
Build 3D deformation field:  67%|████████████████████          | 168/252 [00:01<00:00, 122.42iter/s]
Build 3D deformation field:  72%|█████████████████████▌        | 181/252 [00:01<00:00, 122.84iter/s]
Build 3D deformation field:  77%|███████████████████████       | 194/252 [00:01<00:00, 123.15iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 207/252 [00:01<00:00, 122.72iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 220/252 [00:01<00:00, 123.64iter/s]
Build 3D deformation field:  92%|███████████████████████████▋  | 233/252 [00:01<00:00, 123.35iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 246/252 [00:02<00:00, 122.70iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 252/252 [00:02<00:00, 122.49iter/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-05_21-22-48_register-wrapper_hf61ffz7
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-22-48_register-wrapper_hf61ffz7
rm -rf /tmp/sct_2024-11-05_21-22-50_register-slicewise_axg2231o

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-05_21-22-48_register-wrapper_hf61ffz7
/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-05_21-22-48_register-wrapper_hf61ffz7

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-05_21-22-48_register-wrapper_hf61ffz7/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-05_21-22-48_register-wrapper_hf61ffz7/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-05_21-22-48_register-wrapper_hf61ffz7

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_05_212256.329012.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-22-59_register-wrapper_2gl0l59q)

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-05_21-22-59_register-wrapper_2gl0l59q

--
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-05_21-23-00_register-slicewise_ep29bhe7)

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<01:00,  4.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 #13 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #14 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #15 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #16 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #17 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #18 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #19 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #20 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #21 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #22 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #23 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #40 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #41 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #42 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #43 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #44 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #45 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #46 is empty. It will be ignored.
Estimate cord angle for each slice:  44%|█████████▊            | 118/266 [00:00<00:00, 452.56iter/s]
Estimate cord angle for each slice:  91%|████████████████████  | 242/266 [00:00<00:00, 730.38iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 266/266 [00:00<00:00, 591.78iter/s]

Build 3D deformation field:   0%|                                         | 0/248 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 14/248 [00:00<00:01, 130.76iter/s]
Build 3D deformation field:  12%|███▋                           | 29/248 [00:00<00:01, 137.19iter/s]
Build 3D deformation field:  18%|█████▌                         | 44/248 [00:00<00:01, 139.36iter/s]
Build 3D deformation field:  24%|███████▍                       | 59/248 [00:00<00:01, 140.18iter/s]
Build 3D deformation field:  30%|█████████▎                     | 74/248 [00:00<00:01, 140.26iter/s]
Build 3D deformation field:  36%|███████████▏                   | 89/248 [00:00<00:01, 140.11iter/s]
Build 3D deformation field:  42%|████████████▌                 | 104/248 [00:00<00:01, 140.56iter/s]
Build 3D deformation field:  48%|██████████████▍               | 119/248 [00:00<00:00, 140.60iter/s]
Build 3D deformation field:  54%|████████████████▏             | 134/248 [00:00<00:00, 139.18iter/s]
Build 3D deformation field:  60%|██████████████████            | 149/248 [00:01<00:00, 140.51iter/s]
Build 3D deformation field:  66%|███████████████████▊          | 164/248 [00:01<00:00, 140.50iter/s]
Build 3D deformation field:  72%|█████████████████████▋        | 179/248 [00:01<00:00, 141.45iter/s]
Build 3D deformation field:  78%|███████████████████████▍      | 194/248 [00:01<00:00, 141.42iter/s]
Build 3D deformation field:  84%|█████████████████████████▎    | 209/248 [00:01<00:00, 141.28iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 224/248 [00:01<00:00, 141.82iter/s]
Build 3D deformation field:  96%|████████████████████████████▉ | 239/248 [00:01<00:00, 141.98iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 248/248 [00:01<00:00, 140.71iter/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-05_21-22-59_register-wrapper_2gl0l59q
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-22-59_register-wrapper_2gl0l59q
rm -rf /tmp/sct_2024-11-05_21-23-00_register-slicewise_ep29bhe7

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-05_21-22-59_register-wrapper_2gl0l59q
/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-05_21-22-59_register-wrapper_2gl0l59q

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-05_21-22-59_register-wrapper_2gl0l59q/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-05_21-22-59_register-wrapper_2gl0l59q/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-05_21-22-59_register-wrapper_2gl0l59q

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_05_212306.559592.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-23-09_register-wrapper_ps_ump35)

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-05_21-23-09_register-wrapper_ps_ump35

--
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-05_21-23-10_register-slicewise_1pqb6isn)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 61 x 89 x 276
  voxel size: 0.7065217mm x 0.6999956mm x 276mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/276 [00:00<?, ?iter/s]
Estimate cord angle for each slice:   0%|                         | 1/276 [00:00<01:02,  4.37iter/s]
Estimate cord angle for each slice:  45%|█████████▉            | 125/276 [00:00<00:00, 478.60iter/s]
Estimate cord angle for each slice:  92%|████████████████████▏ | 253/276 [00:00<00:00, 760.86iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 276/276 [00:00<00:00, 615.64iter/s]

Build 3D deformation field:   0%|                                         | 0/276 [00:00<?, ?iter/s]
Build 3D deformation field:   5%|█▋                             | 15/276 [00:00<00:01, 146.97iter/s]
Build 3D deformation field:  11%|███▍                           | 31/276 [00:00<00:01, 152.87iter/s]
Build 3D deformation field:  17%|█████▎                         | 47/276 [00:00<00:01, 154.93iter/s]
Build 3D deformation field:  23%|███████                        | 63/276 [00:00<00:01, 156.80iter/s]
Build 3D deformation field:  29%|████████▊                      | 79/276 [00:00<00:01, 157.37iter/s]
Build 3D deformation field:  35%|██████████▊                    | 96/276 [00:00<00:01, 158.69iter/s]
Build 3D deformation field:  41%|████████████▎                 | 113/276 [00:00<00:01, 159.70iter/s]
Build 3D deformation field:  47%|██████████████▏               | 130/276 [00:00<00:00, 160.46iter/s]
Build 3D deformation field:  53%|███████████████▉              | 147/276 [00:00<00:00, 160.68iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 164/276 [00:01<00:00, 160.28iter/s]
Build 3D deformation field:  66%|███████████████████▋          | 181/276 [00:01<00:00, 157.73iter/s]
Build 3D deformation field:  71%|█████████████████████▍        | 197/276 [00:01<00:00, 157.58iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 213/276 [00:01<00:00, 157.43iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 229/276 [00:01<00:00, 157.14iter/s]
Build 3D deformation field:  89%|██████████████████████████▋   | 245/276 [00:01<00:00, 157.18iter/s]
Build 3D deformation field:  95%|████████████████████████████▎ | 261/276 [00:01<00:00, 157.38iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 276/276 [00:01<00:00, 157.81iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz
Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2024-11-05_21-23-09_register-wrapper_ps_ump35
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-23-09_register-wrapper_ps_ump35
rm -rf /tmp/sct_2024-11-05_21-23-10_register-slicewise_1pqb6isn

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-05_21-23-09_register-wrapper_ps_ump35
/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-05_21-23-09_register-wrapper_ps_ump35

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-05_21-23-09_register-wrapper_ps_ump35/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-05_21-23-09_register-wrapper_ps_ump35/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-05_21-23-09_register-wrapper_ps_ump35

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_05_212316.465285.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-23-19_register-wrapper_mr_8w6_1)

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-05_21-23-19_register-wrapper_mr_8w6_1

--
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-05_21-23-21_register-slicewise_im13crg0)

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:03,  4.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 #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, 459.02iter/s]
Estimate cord angle for each slice:  86%|██████████████████▉   | 242/282 [00:00<00:00, 731.45iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 612.12iter/s]

Build 3D deformation field:   0%|                                         | 0/263 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                              | 10/263 [00:00<00:02, 98.58iter/s]
Build 3D deformation field:   8%|██▍                            | 21/263 [00:00<00:02, 104.26iter/s]
Build 3D deformation field:  12%|███▊                           | 32/263 [00:00<00:02, 105.61iter/s]
Build 3D deformation field:  16%|█████                          | 43/263 [00:00<00:02, 106.37iter/s]
Build 3D deformation field:  21%|██████▎                        | 54/263 [00:00<00:01, 105.99iter/s]
Build 3D deformation field:  25%|███████▋                       | 65/263 [00:00<00:01, 105.79iter/s]
Build 3D deformation field:  29%|████████▉                      | 76/263 [00:00<00:01, 106.07iter/s]
Build 3D deformation field:  33%|██████████▎                    | 87/263 [00:00<00:01, 105.88iter/s]
Build 3D deformation field:  37%|███████████▌                   | 98/263 [00:00<00:01, 105.81iter/s]
Build 3D deformation field:  41%|████████████▍                 | 109/263 [00:01<00:01, 105.65iter/s]
Build 3D deformation field:  46%|█████████████▋                | 120/263 [00:01<00:01, 105.41iter/s]
Build 3D deformation field:  50%|██████████████▉               | 131/263 [00:01<00:01, 105.51iter/s]
Build 3D deformation field:  54%|████████████████▏             | 142/263 [00:01<00:01, 105.96iter/s]
Build 3D deformation field:  58%|█████████████████▍            | 153/263 [00:01<00:01, 105.99iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 164/263 [00:01<00:00, 105.90iter/s]
Build 3D deformation field:  67%|███████████████████▉          | 175/263 [00:01<00:00, 105.89iter/s]
Build 3D deformation field:  71%|█████████████████████▏        | 186/263 [00:01<00:00, 106.89iter/s]
Build 3D deformation field:  75%|██████████████████████▍       | 197/263 [00:01<00:00, 106.54iter/s]
Build 3D deformation field:  79%|███████████████████████▋      | 208/263 [00:01<00:00, 106.13iter/s]
Build 3D deformation field:  83%|████████████████████████▉     | 219/263 [00:02<00:00, 106.02iter/s]
Build 3D deformation field:  87%|██████████████████████████▏   | 230/263 [00:02<00:00, 105.72iter/s]
Build 3D deformation field:  92%|███████████████████████████▍  | 241/263 [00:02<00:00, 104.99iter/s]
Build 3D deformation field:  96%|████████████████████████████▋ | 252/263 [00:02<00:00, 105.18iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 105.21iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 263/263 [00:02<00:00, 105.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-05_21-23-19_register-wrapper_mr_8w6_1
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-23-19_register-wrapper_mr_8w6_1
rm -rf /tmp/sct_2024-11-05_21-23-21_register-slicewise_im13crg0

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-05_21-23-19_register-wrapper_mr_8w6_1
/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-05_21-23-19_register-wrapper_mr_8w6_1

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-05_21-23-19_register-wrapper_mr_8w6_1/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-05_21-23-19_register-wrapper_mr_8w6_1/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-05_21-23-19_register-wrapper_mr_8w6_1

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_05_212328.797510.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-23-31_register-wrapper_qwqfhu62)

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-05_21-23-31_register-wrapper_qwqfhu62

--
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-05_21-23-33_register-slicewise_zf4u2ey5)

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:53,  4.46iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/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%|███████████▋          | 126/238 [00:00<00:00, 488.29iter/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, 575.28iter/s]

Build 3D deformation field:   0%|                                         | 0/220 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 17/220 [00:00<00:01, 167.16iter/s]
Build 3D deformation field:  16%|████▉                          | 35/220 [00:00<00:01, 171.85iter/s]
Build 3D deformation field:  24%|███████▍                       | 53/220 [00:00<00:00, 173.14iter/s]
Build 3D deformation field:  32%|██████████                     | 71/220 [00:00<00:00, 174.14iter/s]
Build 3D deformation field:  40%|████████████▌                  | 89/220 [00:00<00:00, 175.86iter/s]
Build 3D deformation field:  49%|██████████████▌               | 107/220 [00:00<00:00, 175.66iter/s]
Build 3D deformation field:  57%|█████████████████             | 125/220 [00:00<00:00, 176.76iter/s]
Build 3D deformation field:  65%|███████████████████▌          | 143/220 [00:00<00:00, 176.00iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 161/220 [00:00<00:00, 176.46iter/s]
Build 3D deformation field:  81%|████████████████████████▍     | 179/220 [00:01<00:00, 176.69iter/s]
Build 3D deformation field:  90%|██████████████████████████▊   | 197/220 [00:01<00:00, 176.31iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 215/220 [00:01<00:00, 176.71iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 220/220 [00:01<00:00, 175.69iter/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-05_21-23-31_register-wrapper_qwqfhu62
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-23-31_register-wrapper_qwqfhu62
rm -rf /tmp/sct_2024-11-05_21-23-33_register-slicewise_zf4u2ey5

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-05_21-23-31_register-wrapper_qwqfhu62
/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-05_21-23-31_register-wrapper_qwqfhu62

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-05_21-23-31_register-wrapper_qwqfhu62/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-05_21-23-31_register-wrapper_qwqfhu62/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-05_21-23-31_register-wrapper_qwqfhu62

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_05_212337.916576.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-23-40_register-wrapper_b5w0lwrp)

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-05_21-23-40_register-wrapper_b5w0lwrp

--
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-05_21-23-41_register-slicewise_zg9smqzi)

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:52,  4.31iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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:  55%|████████████          | 125/228 [00:00<00:00, 474.50iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 553.77iter/s]

Build 3D deformation field:   0%|                                         | 0/213 [00:00<?, ?iter/s]
Build 3D deformation field:   9%|██▊                            | 19/213 [00:00<00:01, 181.34iter/s]
Build 3D deformation field:  18%|█████▌                         | 38/213 [00:00<00:00, 183.93iter/s]
Build 3D deformation field:  27%|████████▎                      | 57/213 [00:00<00:00, 185.41iter/s]
Build 3D deformation field:  36%|███████████                    | 76/213 [00:00<00:00, 186.06iter/s]
Build 3D deformation field:  45%|█████████████▊                 | 95/213 [00:00<00:00, 186.39iter/s]
Build 3D deformation field:  54%|████████████████              | 114/213 [00:00<00:00, 186.69iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 133/213 [00:00<00:00, 186.07iter/s]
Build 3D deformation field:  71%|█████████████████████▍        | 152/213 [00:00<00:00, 186.25iter/s]
Build 3D deformation field:  80%|████████████████████████      | 171/213 [00:00<00:00, 184.68iter/s]
Build 3D deformation field:  89%|██████████████████████████▊   | 190/213 [00:01<00:00, 185.79iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 209/213 [00:01<00:00, 186.26iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 213/213 [00:01<00:00, 185.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-05_21-23-40_register-wrapper_b5w0lwrp
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-23-40_register-wrapper_b5w0lwrp
rm -rf /tmp/sct_2024-11-05_21-23-41_register-slicewise_zg9smqzi

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-05_21-23-40_register-wrapper_b5w0lwrp
/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-05_21-23-40_register-wrapper_b5w0lwrp

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-05_21-23-40_register-wrapper_b5w0lwrp/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-05_21-23-40_register-wrapper_b5w0lwrp/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-05_21-23-40_register-wrapper_b5w0lwrp

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_05_212345.622881.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-23-48_register-wrapper_12nn0ppx)

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-05_21-23-48_register-wrapper_12nn0ppx

--
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-05_21-23-50_register-slicewise_cq6mihwe)

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:05,  4.42iter/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:  40%|████████▉             | 117/289 [00:00<00:00, 450.81iter/s]
Estimate cord angle for each slice:  83%|██████████████████▎   | 240/289 [00:00<00:00, 726.98iter/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, 636.65iter/s]

Build 3D deformation field:   0%|                                         | 0/218 [00:00<?, ?iter/s]
Build 3D deformation field:   6%|█▊                             | 13/218 [00:00<00:01, 122.57iter/s]
Build 3D deformation field:  12%|███▋                           | 26/218 [00:00<00:01, 125.58iter/s]
Build 3D deformation field:  18%|█████▌                         | 39/218 [00:00<00:01, 126.35iter/s]
Build 3D deformation field:  24%|███████▍                       | 52/218 [00:00<00:01, 126.95iter/s]
Build 3D deformation field:  30%|█████████▏                     | 65/218 [00:00<00:01, 127.21iter/s]
Build 3D deformation field:  36%|███████████                    | 78/218 [00:00<00:01, 126.79iter/s]
Build 3D deformation field:  42%|████████████▉                  | 91/218 [00:00<00:01, 126.55iter/s]
Build 3D deformation field:  48%|██████████████▎               | 104/218 [00:00<00:00, 126.16iter/s]
Build 3D deformation field:  54%|████████████████              | 117/218 [00:00<00:00, 126.01iter/s]
Build 3D deformation field:  60%|█████████████████▉            | 130/218 [00:01<00:00, 126.75iter/s]
Build 3D deformation field:  66%|███████████████████▋          | 143/218 [00:01<00:00, 126.60iter/s]
Build 3D deformation field:  72%|█████████████████████▍        | 156/218 [00:01<00:00, 126.82iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 169/218 [00:01<00:00, 126.49iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 183/218 [00:01<00:00, 127.41iter/s]
Build 3D deformation field:  90%|██████████████████████████▉   | 196/218 [00:01<00:00, 127.42iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 209/218 [00:01<00:00, 127.47iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 218/218 [00:01<00:00, 126.85iter/s]

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1Warp.nii.gz

Generate warping field...
Image header specifies datatype 'float32', but array is of type 'float64'. Header metadata will be overwritten to use 'float64'.
 --> step1InverseWarp.nii.gz

Move warping fields...
cp step1Warp.nii.gz /tmp/sct_2024-11-05_21-23-48_register-wrapper_12nn0ppx
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-23-48_register-wrapper_12nn0ppx
rm -rf /tmp/sct_2024-11-05_21-23-50_register-slicewise_cq6mihwe

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-05_21-23-48_register-wrapper_12nn0ppx
/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-05_21-23-48_register-wrapper_12nn0ppx

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-05_21-23-48_register-wrapper_12nn0ppx/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-05_21-23-48_register-wrapper_12nn0ppx/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-05_21-23-48_register-wrapper_12nn0ppx

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_05_212356.139145.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-23-59_register-wrapper_wflm1lw7)

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-05_21-23-59_register-wrapper_wflm1lw7

--
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-05_21-24-00_register-slicewise_pb_wex1e)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 65 x 65 x 296
  voxel size: 0.7065217mm x 0.6999944mm x 296mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/296 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/296 [00:00<01:08,  4.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 #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:  39%|████████▌             | 115/296 [00:00<00:00, 434.52iter/s]
Estimate cord angle for each slice:  82%|█████████████████▉    | 242/296 [00:00<00:00, 726.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 #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, 624.61iter/s]

Build 3D deformation field:   0%|                                         | 0/238 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▎                            | 18/238 [00:00<00:01, 178.47iter/s]
Build 3D deformation field:  15%|████▋                          | 36/238 [00:00<00:01, 177.16iter/s]
Build 3D deformation field:  24%|███████▎                       | 56/238 [00:00<00:00, 184.71iter/s]
Build 3D deformation field:  32%|█████████▉                     | 76/238 [00:00<00:00, 187.79iter/s]
Build 3D deformation field:  40%|████████████▌                  | 96/238 [00:00<00:00, 190.39iter/s]
Build 3D deformation field:  49%|██████████████▌               | 116/238 [00:00<00:00, 191.37iter/s]
Build 3D deformation field:  57%|█████████████████▏            | 136/238 [00:00<00:00, 192.45iter/s]
Build 3D deformation field:  66%|███████████████████▋          | 156/238 [00:00<00:00, 192.90iter/s]
Build 3D deformation field:  74%|██████████████████████▏       | 176/238 [00:00<00:00, 193.86iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 196/238 [00:01<00:00, 193.80iter/s]
Build 3D deformation field:  91%|███████████████████████████▏  | 216/238 [00:01<00:00, 194.48iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 236/238 [00:01<00:00, 193.68iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 238/238 [00:01<00:00, 191.25iter/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-05_21-23-59_register-wrapper_wflm1lw7
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-23-59_register-wrapper_wflm1lw7
rm -rf /tmp/sct_2024-11-05_21-24-00_register-slicewise_pb_wex1e

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-05_21-23-59_register-wrapper_wflm1lw7
/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-05_21-23-59_register-wrapper_wflm1lw7

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-05_21-23-59_register-wrapper_wflm1lw7/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-05_21-23-59_register-wrapper_wflm1lw7/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-05_21-23-59_register-wrapper_wflm1lw7

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_05_212405.370669.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-24-08_register-wrapper_pjvvxxmk)

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-05_21-24-08_register-wrapper_pjvvxxmk

--
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-05_21-24-09_register-slicewise_ibzgnkq2)

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:54,  4.30iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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%|███████████▊          | 125/234 [00:00<00:00, 473.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 #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, 562.97iter/s]

Build 3D deformation field:   0%|                                         | 0/211 [00:00<?, ?iter/s]
Build 3D deformation field:   8%|██▍                            | 17/211 [00:00<00:01, 163.39iter/s]
Build 3D deformation field:  17%|█████▏                         | 35/211 [00:00<00:01, 171.64iter/s]
Build 3D deformation field:  25%|███████▊                       | 53/211 [00:00<00:00, 174.04iter/s]
Build 3D deformation field:  34%|██████████▍                    | 71/211 [00:00<00:00, 173.83iter/s]
Build 3D deformation field:  42%|█████████████                  | 89/211 [00:00<00:00, 173.34iter/s]
Build 3D deformation field:  51%|███████████████▏              | 107/211 [00:00<00:00, 173.36iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 125/211 [00:00<00:00, 173.50iter/s]
Build 3D deformation field:  68%|████████████████████▎         | 143/211 [00:00<00:00, 173.62iter/s]
Build 3D deformation field:  76%|██████████████████████▉       | 161/211 [00:00<00:00, 173.46iter/s]
Build 3D deformation field:  85%|█████████████████████████▍    | 179/211 [00:01<00:00, 173.04iter/s]
Build 3D deformation field:  93%|████████████████████████████  | 197/211 [00:01<00:00, 173.79iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 211/211 [00:01<00:00, 173.31iter/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-05_21-24-08_register-wrapper_pjvvxxmk
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-24-08_register-wrapper_pjvvxxmk
rm -rf /tmp/sct_2024-11-05_21-24-09_register-slicewise_ibzgnkq2

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-05_21-24-08_register-wrapper_pjvvxxmk
/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-05_21-24-08_register-wrapper_pjvvxxmk

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-05_21-24-08_register-wrapper_pjvvxxmk/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-05_21-24-08_register-wrapper_pjvvxxmk/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-05_21-24-08_register-wrapper_pjvvxxmk

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_05_212413.716128.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-24-16_register-wrapper_vyd_u08i)

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-05_21-24-16_register-wrapper_vyd_u08i

--
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-05_21-24-18_register-slicewise_u5xq38qa)

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:13,  4.35iter/s]
Estimate cord angle for each slice:  39%|████████▌             | 126/322 [00:00<00:00, 481.13iter/s]
Estimate cord angle for each slice:  79%|█████████████████▎    | 253/322 [00:00<00:00, 758.05iter/s]
Estimate cord angle for each slice: 100%|██████████████████████| 322/322 [00:00<00:00, 663.03iter/s]

Build 3D deformation field:   0%|                                         | 0/322 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                             | 13/322 [00:00<00:02, 128.56iter/s]
Build 3D deformation field:   8%|██▌                            | 27/322 [00:00<00:02, 134.87iter/s]
Build 3D deformation field:  13%|███▉                           | 41/322 [00:00<00:02, 136.87iter/s]
Build 3D deformation field:  17%|█████▍                         | 56/322 [00:00<00:01, 138.74iter/s]
Build 3D deformation field:  22%|██████▋                        | 70/322 [00:00<00:01, 138.65iter/s]
Build 3D deformation field:  26%|████████                       | 84/322 [00:00<00:01, 138.91iter/s]
Build 3D deformation field:  30%|█████████▍                     | 98/322 [00:00<00:01, 138.58iter/s]
Build 3D deformation field:  35%|██████████▍                   | 112/322 [00:00<00:01, 138.16iter/s]
Build 3D deformation field:  39%|███████████▋                  | 126/322 [00:00<00:01, 137.50iter/s]
Build 3D deformation field:  44%|█████████████▏                | 141/322 [00:01<00:01, 138.32iter/s]
Build 3D deformation field:  48%|██████████████▌               | 156/322 [00:01<00:01, 139.11iter/s]
Build 3D deformation field:  53%|███████████████▉              | 171/322 [00:01<00:01, 139.40iter/s]
Build 3D deformation field:  57%|█████████████████▏            | 185/322 [00:01<00:00, 139.42iter/s]
Build 3D deformation field:  62%|██████████████████▋           | 200/322 [00:01<00:00, 139.60iter/s]
Build 3D deformation field:  66%|███████████████████▉          | 214/322 [00:01<00:00, 139.14iter/s]
Build 3D deformation field:  71%|█████████████████████▏        | 228/322 [00:01<00:00, 139.14iter/s]
Build 3D deformation field:  75%|██████████████████████▌       | 242/322 [00:01<00:00, 139.22iter/s]
Build 3D deformation field:  80%|███████████████████████▊      | 256/322 [00:01<00:00, 138.74iter/s]
Build 3D deformation field:  84%|█████████████████████████▏    | 270/322 [00:01<00:00, 136.74iter/s]
Build 3D deformation field:  89%|██████████████████████████▌   | 285/322 [00:02<00:00, 137.76iter/s]
Build 3D deformation field:  93%|███████████████████████████▊  | 299/322 [00:02<00:00, 138.16iter/s]
Build 3D deformation field:  98%|█████████████████████████████▎| 314/322 [00:02<00:00, 138.92iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 322/322 [00:02<00:00, 138.47iter/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-05_21-24-16_register-wrapper_vyd_u08i
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-24-16_register-wrapper_vyd_u08i
rm -rf /tmp/sct_2024-11-05_21-24-18_register-slicewise_u5xq38qa

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-05_21-24-16_register-wrapper_vyd_u08i
/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-05_21-24-16_register-wrapper_vyd_u08i

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-05_21-24-16_register-wrapper_vyd_u08i/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-05_21-24-16_register-wrapper_vyd_u08i/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-05_21-24-16_register-wrapper_vyd_u08i

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_05_212425.453032.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-24-28_register-wrapper_j_x0lcsu)

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-05_21-24-28_register-wrapper_j_x0lcsu

--
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-05_21-24-31_register-slicewise_jmo11n84)

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:17,  4.26iter/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%|█████████             | 137/333 [00:00<00:00, 516.18iter/s]
Estimate cord angle for each slice:  78%|█████████████████     | 259/333 [00:00<00:00, 761.49iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #324 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #325 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #326 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #327 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #328 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #329 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #330 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #331 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #332 is empty. It will be ignored.

Estimate cord angle for each slice: 100%|██████████████████████| 333/333 [00:00<00:00, 674.31iter/s]

Build 3D deformation field:   0%|                                         | 0/282 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▏                             | 11/282 [00:00<00:02, 109.89iter/s]
Build 3D deformation field:   9%|██▋                            | 24/282 [00:00<00:02, 116.66iter/s]
Build 3D deformation field:  13%|████                           | 37/282 [00:00<00:02, 119.06iter/s]
Build 3D deformation field:  18%|█████▍                         | 50/282 [00:00<00:01, 120.07iter/s]
Build 3D deformation field:  22%|██████▉                        | 63/282 [00:00<00:01, 120.80iter/s]
Build 3D deformation field:  27%|████████▎                      | 76/282 [00:00<00:01, 121.81iter/s]
Build 3D deformation field:  32%|█████████▊                     | 89/282 [00:00<00:01, 121.48iter/s]
Build 3D deformation field:  36%|██████████▊                   | 102/282 [00:00<00:01, 121.12iter/s]
Build 3D deformation field:  41%|████████████▏                 | 115/282 [00:00<00:01, 121.30iter/s]
Build 3D deformation field:  45%|█████████████▌                | 128/282 [00:01<00:01, 121.47iter/s]
Build 3D deformation field:  50%|███████████████               | 141/282 [00:01<00:01, 122.00iter/s]
Build 3D deformation field:  55%|████████████████▍             | 154/282 [00:01<00:01, 122.27iter/s]
Build 3D deformation field:  59%|█████████████████▊            | 167/282 [00:01<00:00, 121.87iter/s]
Build 3D deformation field:  64%|███████████████████▏          | 180/282 [00:01<00:00, 121.90iter/s]
Build 3D deformation field:  68%|████████████████████▌         | 193/282 [00:01<00:00, 121.79iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 206/282 [00:01<00:00, 121.94iter/s]
Build 3D deformation field:  78%|███████████████████████▎      | 219/282 [00:01<00:00, 121.59iter/s]
Build 3D deformation field:  82%|████████████████████████▋     | 232/282 [00:01<00:00, 121.27iter/s]
Build 3D deformation field:  87%|██████████████████████████    | 245/282 [00:02<00:00, 120.71iter/s]
Build 3D deformation field:  91%|███████████████████████████▍  | 258/282 [00:02<00:00, 120.47iter/s]
Build 3D deformation field:  96%|████████████████████████████▊ | 271/282 [00:02<00:00, 121.25iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 282/282 [00:02<00:00, 121.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-05_21-24-28_register-wrapper_j_x0lcsu
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-24-28_register-wrapper_j_x0lcsu
rm -rf /tmp/sct_2024-11-05_21-24-31_register-slicewise_jmo11n84

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-05_21-24-28_register-wrapper_j_x0lcsu
/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-05_21-24-28_register-wrapper_j_x0lcsu

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-05_21-24-28_register-wrapper_j_x0lcsu/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-05_21-24-28_register-wrapper_j_x0lcsu/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-05_21-24-28_register-wrapper_j_x0lcsu

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_05_212438.639440.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-24-41_register-wrapper_bx0267hn)

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-05_21-24-41_register-wrapper_bx0267hn

--
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-05_21-24-44_register-slicewise_0zjoy2vh)

Copy input data to temp folder...
Get image dimensions of destination image...
  matrix size: 75 x 110 x 287
  voxel size: 0.7065217mm x 0.7000031mm x 287mm

Split input segmentation...
Split destination segmentation...
Estimate cord angle for each slice:   0%|                                 | 0/287 [00:00<?, ?iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #0 is empty. It will be ignored.

Estimate cord angle for each slice:   0%|                         | 1/287 [00:00<01:02,  4.56iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #1 is empty. It will be ignored.
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #2 is empty. It will be ignored.
Estimate cord angle for each slice:  43%|█████████▍            | 123/287 [00:00<00:00, 483.42iter/s]
Estimate cord angle for each slice:  85%|██████████████████▊   | 245/287 [00:00<00:00, 748.29iter/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, 646.27iter/s]

Build 3D deformation field:   0%|                                         | 0/255 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▎                              | 10/255 [00:00<00:02, 96.63iter/s]
Build 3D deformation field:   8%|██▌                            | 21/255 [00:00<00:02, 101.68iter/s]
Build 3D deformation field:  13%|███▉                           | 32/255 [00:00<00:02, 103.79iter/s]
Build 3D deformation field:  17%|█████▏                         | 43/255 [00:00<00:02, 104.60iter/s]
Build 3D deformation field:  21%|██████▌                        | 54/255 [00:00<00:01, 104.91iter/s]
Build 3D deformation field:  25%|███████▉                       | 65/255 [00:00<00:01, 105.15iter/s]
Build 3D deformation field:  30%|█████████▏                     | 76/255 [00:00<00:01, 105.19iter/s]
Build 3D deformation field:  34%|██████████▌                    | 87/255 [00:00<00:01, 105.14iter/s]
Build 3D deformation field:  38%|███████████▉                   | 98/255 [00:00<00:01, 105.25iter/s]
Build 3D deformation field:  43%|████████████▊                 | 109/255 [00:01<00:01, 105.13iter/s]
Build 3D deformation field:  47%|██████████████                | 120/255 [00:01<00:01, 105.72iter/s]
Build 3D deformation field:  51%|███████████████▍              | 131/255 [00:01<00:01, 104.91iter/s]
Build 3D deformation field:  56%|████████████████▋             | 142/255 [00:01<00:01, 104.66iter/s]
Build 3D deformation field:  60%|██████████████████            | 153/255 [00:01<00:00, 104.65iter/s]
Build 3D deformation field:  64%|███████████████████▎          | 164/255 [00:01<00:00, 104.76iter/s]
Build 3D deformation field:  69%|████████████████████▌         | 175/255 [00:01<00:00, 105.25iter/s]
Build 3D deformation field:  73%|█████████████████████▉        | 186/255 [00:01<00:00, 105.07iter/s]
Build 3D deformation field:  77%|███████████████████████▏      | 197/255 [00:01<00:00, 105.19iter/s]
Build 3D deformation field:  82%|████████████████████████▍     | 208/255 [00:01<00:00, 105.26iter/s]
Build 3D deformation field:  86%|█████████████████████████▊    | 219/255 [00:02<00:00, 105.40iter/s]
Build 3D deformation field:  90%|███████████████████████████   | 230/255 [00:02<00:00, 105.49iter/s]
Build 3D deformation field:  95%|████████████████████████████▎ | 241/255 [00:02<00:00, 105.69iter/s]
Build 3D deformation field:  99%|█████████████████████████████▋| 252/255 [00:02<00:00, 106.02iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 255/255 [00:02<00:00, 105.03iter/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-05_21-24-41_register-wrapper_bx0267hn
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-24-41_register-wrapper_bx0267hn
rm -rf /tmp/sct_2024-11-05_21-24-44_register-slicewise_0zjoy2vh

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-05_21-24-41_register-wrapper_bx0267hn
/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-05_21-24-41_register-wrapper_bx0267hn

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-05_21-24-41_register-wrapper_bx0267hn/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-05_21-24-41_register-wrapper_bx0267hn/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-05_21-24-41_register-wrapper_bx0267hn

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_05_212451.596643.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-24-54_register-wrapper_0v30w27j)

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-05_21-24-54_register-wrapper_0v30w27j

--
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-05_21-24-57_register-slicewise_f6qsk5ut)

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:11,  4.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 #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:  39%|████████▋             | 118/300 [00:00<00:00, 439.20iter/s]
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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:  82%|██████████████████    | 246/300 [00:00<00:00, 730.51iter/s]/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/spinalcordtoolbox/registration/algorithms.py:1440: RuntimeWarning: Mean of empty slice.
  centermass = coordsrc.mean(0)
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:121: RuntimeWarning: invalid value encountered in divide
  ret = um.true_divide(
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:206: RuntimeWarning: Degrees of freedom <= 0 for slice
  ret = _var(a, axis=axis, dtype=dtype, out=out, ddof=ddof,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:163: RuntimeWarning: invalid value encountered in divide
  arrmean = um.true_divide(arrmean, div, out=arrmean,
/home/runner/work/coil-qc-code/coil-qc-code/spinalcordtoolbox/python/envs/venv_sct/lib/python3.9/site-packages/numpy/core/_methods.py:198: RuntimeWarning: invalid value encountered in scalar divide
  ret = ret.dtype.type(ret / rcount)
Slice #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, 641.86iter/s]

Build 3D deformation field:   0%|                                         | 0/223 [00:00<?, ?iter/s]
Build 3D deformation field:   4%|█▍                              | 10/223 [00:00<00:02, 96.76iter/s]
Build 3D deformation field:   9%|███                             | 21/223 [00:00<00:02, 99.78iter/s]
Build 3D deformation field:  14%|████▍                          | 32/223 [00:00<00:01, 101.35iter/s]
Build 3D deformation field:  19%|█████▉                         | 43/223 [00:00<00:01, 102.29iter/s]
Build 3D deformation field:  24%|███████▌                       | 54/223 [00:00<00:01, 102.63iter/s]
Build 3D deformation field:  29%|█████████                      | 65/223 [00:00<00:01, 103.05iter/s]
Build 3D deformation field:  34%|██████████▌                    | 76/223 [00:00<00:01, 103.53iter/s]
Build 3D deformation field:  39%|████████████                   | 87/223 [00:00<00:01, 103.72iter/s]
Build 3D deformation field:  44%|█████████████▌                 | 98/223 [00:00<00:01, 104.01iter/s]
Build 3D deformation field:  49%|██████████████▋               | 109/223 [00:01<00:01, 104.08iter/s]
Build 3D deformation field:  54%|████████████████▏             | 120/223 [00:01<00:00, 104.17iter/s]
Build 3D deformation field:  59%|█████████████████▌            | 131/223 [00:01<00:00, 105.25iter/s]
Build 3D deformation field:  64%|███████████████████           | 142/223 [00:01<00:00, 105.62iter/s]
Build 3D deformation field:  69%|████████████████████▌         | 153/223 [00:01<00:00, 105.99iter/s]
Build 3D deformation field:  74%|██████████████████████        | 164/223 [00:01<00:00, 105.80iter/s]
Build 3D deformation field:  78%|███████████████████████▌      | 175/223 [00:01<00:00, 105.59iter/s]
Build 3D deformation field:  83%|█████████████████████████     | 186/223 [00:01<00:00, 104.84iter/s]
Build 3D deformation field:  88%|██████████████████████████▌   | 197/223 [00:01<00:00, 104.59iter/s]
Build 3D deformation field:  93%|███████████████████████████▉  | 208/223 [00:01<00:00, 104.31iter/s]
Build 3D deformation field:  98%|█████████████████████████████▍| 219/223 [00:02<00:00, 103.94iter/s]
Build 3D deformation field: 100%|██████████████████████████████| 223/223 [00:02<00:00, 103.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-05_21-24-54_register-wrapper_0v30w27j
cp step1InverseWarp.nii.gz /tmp/sct_2024-11-05_21-24-54_register-wrapper_0v30w27j
rm -rf /tmp/sct_2024-11-05_21-24-57_register-slicewise_f6qsk5ut

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-05_21-24-54_register-wrapper_0v30w27j
/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-05_21-24-54_register-wrapper_0v30w27j

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-05_21-24-54_register-wrapper_0v30w27j/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-05_21-24-54_register-wrapper_0v30w27j/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-05_21-24-54_register-wrapper_0v30w27j

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_05_212504.457932.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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/4246477433.py:104: RuntimeWarning: Mean of empty slice
  avgB1=np.nanmean(b1_maps,axis=0)
/tmp/ipykernel_2644/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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-27-56_register-wrapper_ikkwxlv6)

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-05_21-27-56_register-wrapper_ikkwxlv6

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-05_21-27-56_register-wrapper_ikkwxlv6
/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-05_21-27-56_register-wrapper_ikkwxlv6

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-27-56_register-wrapper_ikkwxlv6/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-05_21-27-56_register-wrapper_ikkwxlv6/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-05_21-27-56_register-wrapper_ikkwxlv6

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-00_register-wrapper_b7ty9snn)

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-05_21-28-00_register-wrapper_b7ty9snn

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-05_21-28-00_register-wrapper_b7ty9snn
/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-05_21-28-00_register-wrapper_b7ty9snn

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-UCL3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-00_register-wrapper_b7ty9snn/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-05_21-28-00_register-wrapper_b7ty9snn/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-05_21-28-00_register-wrapper_b7ty9snn

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-03_register-wrapper_3lwi77tq)

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-05_21-28-03_register-wrapper_3lwi77tq

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-05_21-28-03_register-wrapper_3lwi77tq
/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-05_21-28-03_register-wrapper_3lwi77tq

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-05_21-28-03_register-wrapper_3lwi77tq/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-05_21-28-03_register-wrapper_3lwi77tq/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-05_21-28-03_register-wrapper_3lwi77tq

Finished! Elapsed time: 2s
👉 PROCESSING: MNI3
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-07_register-wrapper_px2r_8el)

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-05_21-28-07_register-wrapper_px2r_8el

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-05_21-28-07_register-wrapper_px2r_8el
/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-05_21-28-07_register-wrapper_px2r_8el

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-07_register-wrapper_px2r_8el/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-05_21-28-07_register-wrapper_px2r_8el/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-05_21-28-07_register-wrapper_px2r_8el

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-11_register-wrapper_hhtw43ty)

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-05_21-28-11_register-wrapper_hhtw43ty

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-05_21-28-11_register-wrapper_hhtw43ty
/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-05_21-28-11_register-wrapper_hhtw43ty

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MNI3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-11_register-wrapper_hhtw43ty/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-05_21-28-11_register-wrapper_hhtw43ty/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-05_21-28-11_register-wrapper_hhtw43ty

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-14_register-wrapper_iz5irs2j)

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-05_21-28-14_register-wrapper_iz5irs2j

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-05_21-28-14_register-wrapper_iz5irs2j
/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-05_21-28-14_register-wrapper_iz5irs2j

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-05_21-28-14_register-wrapper_iz5irs2j/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-05_21-28-14_register-wrapper_iz5irs2j/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-05_21-28-14_register-wrapper_iz5irs2j

Finished! Elapsed time: 2s
👉 PROCESSING: MGH3
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-19_register-wrapper_2x4zsxnq)

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-05_21-28-19_register-wrapper_2x4zsxnq

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-05_21-28-19_register-wrapper_2x4zsxnq
/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-05_21-28-19_register-wrapper_2x4zsxnq

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-19_register-wrapper_2x4zsxnq/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-05_21-28-19_register-wrapper_2x4zsxnq/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-05_21-28-19_register-wrapper_2x4zsxnq

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-23_register-wrapper_r5vspo4h)

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-05_21-28-23_register-wrapper_r5vspo4h

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-05_21-28-23_register-wrapper_r5vspo4h
/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-05_21-28-23_register-wrapper_r5vspo4h

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MGH3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-23_register-wrapper_r5vspo4h/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-05_21-28-23_register-wrapper_r5vspo4h/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-05_21-28-23_register-wrapper_r5vspo4h

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-26_register-wrapper_doyvbxbx)

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-05_21-28-26_register-wrapper_doyvbxbx

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-05_21-28-26_register-wrapper_doyvbxbx
/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-05_21-28-26_register-wrapper_doyvbxbx

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-05_21-28-26_register-wrapper_doyvbxbx/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-05_21-28-26_register-wrapper_doyvbxbx/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-05_21-28-26_register-wrapper_doyvbxbx

Finished! Elapsed time: 2s
👉 PROCESSING: MPI3
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-30_register-wrapper_y0mijn2v)

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-05_21-28-30_register-wrapper_y0mijn2v

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-05_21-28-30_register-wrapper_y0mijn2v
/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-05_21-28-30_register-wrapper_y0mijn2v

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-30_register-wrapper_y0mijn2v/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-05_21-28-30_register-wrapper_y0mijn2v/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-05_21-28-30_register-wrapper_y0mijn2v

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-34_register-wrapper_bjqgy2wz)

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-05_21-28-34_register-wrapper_bjqgy2wz

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-05_21-28-34_register-wrapper_bjqgy2wz
/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-05_21-28-34_register-wrapper_bjqgy2wz

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MPI3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-34_register-wrapper_bjqgy2wz/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-05_21-28-34_register-wrapper_bjqgy2wz/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-05_21-28-34_register-wrapper_bjqgy2wz

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-37_register-wrapper_v988rog_)

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-05_21-28-37_register-wrapper_v988rog_

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-05_21-28-37_register-wrapper_v988rog_
/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-05_21-28-37_register-wrapper_v988rog_

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-05_21-28-37_register-wrapper_v988rog_/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-05_21-28-37_register-wrapper_v988rog_/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-05_21-28-37_register-wrapper_v988rog_

Finished! Elapsed time: 2s
👉 PROCESSING: NTNU3
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-41_register-wrapper_bz6c4g71)

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-05_21-28-41_register-wrapper_bz6c4g71

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-05_21-28-41_register-wrapper_bz6c4g71
/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-05_21-28-41_register-wrapper_bz6c4g71

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-41_register-wrapper_bz6c4g71/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-05_21-28-41_register-wrapper_bz6c4g71/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-05_21-28-41_register-wrapper_bz6c4g71

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-45_register-wrapper_9hvspgh0)

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-05_21-28-45_register-wrapper_9hvspgh0

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-05_21-28-45_register-wrapper_9hvspgh0
/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-05_21-28-45_register-wrapper_9hvspgh0

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-NTNU3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-45_register-wrapper_9hvspgh0/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-05_21-28-45_register-wrapper_9hvspgh0/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-05_21-28-45_register-wrapper_9hvspgh0

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-48_register-wrapper_c9z2wvxe)

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-05_21-28-48_register-wrapper_c9z2wvxe

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-05_21-28-48_register-wrapper_c9z2wvxe
/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-05_21-28-48_register-wrapper_c9z2wvxe

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-05_21-28-48_register-wrapper_c9z2wvxe/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-05_21-28-48_register-wrapper_c9z2wvxe/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-05_21-28-48_register-wrapper_c9z2wvxe

Finished! Elapsed time: 2s
👉 PROCESSING: MSSM3
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-52_register-wrapper_0bpjqvub)

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-05_21-28-52_register-wrapper_0bpjqvub

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-05_21-28-52_register-wrapper_0bpjqvub
/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-05_21-28-52_register-wrapper_0bpjqvub

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_TFLTB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-52_register-wrapper_0bpjqvub/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-05_21-28-52_register-wrapper_0bpjqvub/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-05_21-28-52_register-wrapper_0bpjqvub

Finished! Elapsed time: 2s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-57_register-wrapper_zw9qm03f)

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-05_21-28-57_register-wrapper_zw9qm03f

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-05_21-28-57_register-wrapper_zw9qm03f
/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-05_21-28-57_register-wrapper_zw9qm03f

Apply transfo source --> dest...

Apply transfo dest --> source...

Generate output files...
File created: sub-MSSM3_DREAMTB1avgB1map_reg.nii.gz
mv /tmp/sct_2024-11-05_21-28-57_register-wrapper_zw9qm03f/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-05_21-28-57_register-wrapper_zw9qm03f/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-05_21-28-57_register-wrapper_zw9qm03f

Finished! Elapsed time: 0s
--
Spinal Cord Toolbox (git-master-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-05_21-28-59_register-wrapper_eynouqvl)

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-05_21-28-59_register-wrapper_eynouqvl

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-05_21-28-59_register-wrapper_eynouqvl
/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-05_21-28-59_register-wrapper_eynouqvl

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-05_21-28-59_register-wrapper_eynouqvl/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-05_21-28-59_register-wrapper_eynouqvl/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-05_21-28-59_register-wrapper_eynouqvl

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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-b7e8bdd2ff71653e98b34becd6f71b82640fbf71)

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:23:27.106860