Key and Param Groups
[1]:
#!/usr/bin/env python
"""Tests for `cubids` package."""
import sys
import time
from pathlib import Path
import csv
import pandas as pd
import numpy as np
#sys.path.append("..")
import os
#import pytest
from pkg_resources import resource_filename as pkgrf
from cubids import CuBIDS
#import shutil
#import cubids
#import tempfile
#import os.path as op
#from copy import deepcopy
#import base64
#from glob import glob
TEST_DATA = pkgrf("cubids", "testdata")
#data_root = Path(".") / "testdata" / "complete"
data_root2 = "/Users/scovitz/CuBIDS/cubids/Testdata/complete/"
[2]:
###############################
# TESTING change_key_groups!!!!
###############################
bod = CuBIDS(data_root2)
out = bod.change_key_groups('/Users/scovitz/CuBIDS/notebooks/NewTests', '/Users/scovitz/CuBIDS/notebooks/newtsvs')
print(out)
mv /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-01/ses-phdiff/fmap/sub-01_ses-phdiff_acq-v4_magnitude1.nii.gz /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-01/ses-phdiff/fmap/sub-01_ses-phdiff_acq-v5_magnitude1.nii.gz ; mv /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-01/ses-phdiff/fmap/sub-01_ses-phdiff_acq-v4_magnitude1.json /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-01/ses-phdiff/fmap/sub-01_ses-phdiff_acq-v5_magnitude1.json ; mv /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-02/ses-phdiff/fmap/sub-02_ses-phdiff_acq-v4_magnitude1.nii.gz /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-02/ses-phdiff/fmap/sub-02_ses-phdiff_acq-v5_magnitude1.nii.gz ; mv /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-02/ses-phdiff/fmap/sub-02_ses-phdiff_acq-v4_magnitude1.json /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-02/ses-phdiff/fmap/sub-02_ses-phdiff_acq-v5_magnitude1.json ; mv /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-03/ses-phdiff/fmap/sub-03_ses-phdiff_acq-v4_magnitude1.nii.gz /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-03/ses-phdiff/fmap/sub-03_ses-phdiff_acq-v5_magnitude1.nii.gz ; mv /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-03/ses-phdiff/fmap/sub-03_ses-phdiff_acq-v4_magnitude1.json /Users/scovitz/CuBIDS/cubids/Testdata/complete/sub-03/ses-phdiff/fmap/sub-03_ses-phdiff_acq-v5_magnitude1.json
[3]:
type(out)
[3]:
str
[ ]:
# UNDOING RENAMING OF FILES
files_and_dirs = Path("/Users/scovitz/CuBIDS/cubids/testdata/complete/").rglob('*')
for path in files_and_dirs:
old_name = path.stem
old_ext = path.suffix
directory = path.parent
new_name = old_name.replace("T2w", "T1w") + old_ext
path.rename(Path(directory, new_name))
[ ]:
[ ]:
# generating tsvs
bod = CuBIDS(data_root2)
out = bod.get_tsvs('/Users/scovitz/CuBIDS/notebooks/NewTests')
out
[ ]:
#!find testdata
[ ]:
bod = CuBIDS(data_root2)
key_groups = bod.get_key_groups()
print(key_groups)
[ ]:
files = bod.get_filenames('datatype-func_run-2_suffix-bold_task-rest')
files
#print(files)
print(len(files))
[ ]:
for key_group in key_groups:
print(key_group)
output = bod.get_file_params(key_group)
print(len(output))
#print(output)
#print(output)
#output2 = bod.get_param_groups(key_group)
#print(output2[1])
#print(output[1])
#print(output[0])
#print(len(output[0]))
#output.to_csv('Tests/' + key_group + '.tsv')
# export the line above to a tsv
# data = data.append(pd.DataFrame(DwellTime: key_group.
#print(output['/Users/Covitz/Downloads/RBC_growupCCNP_BIDS/sub-colornest195/ses-1/func/sub-colornest195_ses-1_task-rest_run-02_bold.nii.gz'])
#print(output)
[ ]:
key_group = 'datatype-func_run-2_suffix-bold_task-rest'
file_params_dict = bod.get_file_params(key_group)
print(len(file_params_dict))
print(file_params_dict)
#print(output[1])
#print(output[0])
# filenames = list(output.keys())
# first_params = output[filenames[0]]
# #for path in filenames:
# #print(path + "\n")
# #print(first_params)
# GET ALL FILENAMES ASSOCIATED WITH A KEY GROUP
# USE GLOB TO FIND ALL INSTANCES
# IF THEY MATCH AND DICTS MATCH, DO THE REPLACEMENT
# for i in range(len(files)):
# files[i] = str(files[i])
# files_size = len(files)
# print(files_size)
# print(files[0])
# filenames_size = len(filenames)
# print(filenames_size)
# print(filenames[0])
# param_groups = bod.get_param_groups(key_group)
# print(len(param_groups))
[ ]:
# TESTING THE change_filename method!
key_group = 'datatype-func_run-2_suffix-bold_task-rest'
split_params = {'FlipAngle': 80, 'EffectiveEchoSpacing': 0.000510002, 'PartialFourier': 1, 'TotalReadoutTime': 0.0362102, 'RepetitionTime': 2.5, 'EchoTime': 0.03, 'PhaseEncodingDirection': 'j-', 'DwellTime': 3.1e-06, 'SliceTime000': 1.2, 'SliceTime001': 0, 'SliceTime002': 1.3, 'SliceTime003': 0.1, 'SliceTime004': 1.4, 'SliceTime005': 0.1, 'SliceTime006': 1.4, 'SliceTime007': 0.2, 'SliceTime008': 1.5, 'SliceTime009': 0.3, 'SliceTime010': 1.6, 'SliceTime011': 0.3, 'SliceTime012': 1.6, 'SliceTime013': 0.4, 'SliceTime014': 1.7, 'SliceTime015': 0.5, 'SliceTime016': 1.8, 'SliceTime017': 0.5, 'SliceTime018': 1.8, 'SliceTime019': 0.6, 'SliceTime020': 1.9, 'SliceTime021': 0.7, 'SliceTime022': 2.0, 'SliceTime023': 0.7, 'SliceTime024': 2.0, 'SliceTime025': 0.8, 'SliceTime026': 2.1, 'SliceTime027': 0.9, 'SliceTime028': 2.2, 'SliceTime029': 0.9, 'SliceTime030': 2.2, 'SliceTime031': 1.0, 'SliceTime032': 2.3, 'SliceTime033': 1.0, 'SliceTime034': 2.4, 'SliceTime035': 1.1, 'SliceTime036': 2.4, 'SliceTime037': 1.2}
pattern = "task"
replacement = "TASK"
ret = bod.change_filenames(key_group, split_params, pattern, replacement)
changed_paths = ret
print(changed_paths)
print(len(changed_paths))
[ ]:
[ ]:
# TESTING SOMOE SHIT WOOOOOOOOOOOOO
dict_0 = {'EchoTime': 0.03, 'TotalReadoutTime': 0.0362102, 'RepetitionTime': 2.5, 'DwellTime': 3.1e-06, 'PartialFourier': 1, 'FlipAngle': 80, 'EffectiveEchoSpacing': 0.000510002, 'PhaseEncodingDirection': 'j-', 'SliceTime000': 1.2, 'SliceTime001': 0, 'SliceTime002': 1.3, 'SliceTime003': 0.1, 'SliceTime004': 1.4, 'SliceTime005': 0.1, 'SliceTime006': 1.4, 'SliceTime007': 0.2, 'SliceTime008': 1.5, 'SliceTime009': 0.3, 'SliceTime010': 1.6, 'SliceTime011': 0.3, 'SliceTime012': 1.6, 'SliceTime013': 0.4, 'SliceTime014': 1.7, 'SliceTime015': 0.5, 'SliceTime016': 1.8, 'SliceTime017': 0.5, 'SliceTime018': 1.8, 'SliceTime019': 0.6, 'SliceTime020': 1.9, 'SliceTime021': 0.7, 'SliceTime022': 2.0, 'SliceTime023': 0.7, 'SliceTime024': 2.0, 'SliceTime025': 0.8, 'SliceTime026': 2.1, 'SliceTime027': 0.9, 'SliceTime028': 2.2, 'SliceTime029': 0.9, 'SliceTime030': 2.2, 'SliceTime031': 1.0, 'SliceTime032': 2.3, 'SliceTime033': 1.0, 'SliceTime034': 2.4, 'SliceTime035': 1.1, 'SliceTime036': 2.4, 'SliceTime037': 1.2}
dict_1 = {'EchoTime': 0.03, 'TotalReadoutTime': 0.0362102, 'RepetitionTime': 2.5, 'DwellTime': 3.1e-06, 'PartialFourier': 1, 'FlipAngle': 80, 'EffectiveEchoSpacing': 0.000510002, 'PhaseEncodingDirection': 'j-', 'SliceTime000': 1.2, 'SliceTime001': 0, 'SliceTime002': 1.3, 'SliceTime003': 0.1, 'SliceTime004': 1.4, 'SliceTime005': 0.1, 'SliceTime006': 1.4, 'SliceTime007': 0.2, 'SliceTime008': 1.5, 'SliceTime009': 0.3, 'SliceTime010': 1.6, 'SliceTime011': 0.3, 'SliceTime012': 1.6, 'SliceTime013': 0.4, 'SliceTime014': 1.7, 'SliceTime015': 0.5, 'SliceTime016': 1.8, 'SliceTime017': 0.5, 'SliceTime018': 1.8, 'SliceTime019': 0.6, 'SliceTime020': 1.9, 'SliceTime021': 0.7, 'SliceTime022': 2.0, 'SliceTime023': 0.7, 'SliceTime024': 2.0, 'SliceTime025': 0.8, 'SliceTime026': 2.1, 'SliceTime027': 0.9, 'SliceTime028': 2.2, 'SliceTime029': 0.9, 'SliceTime030': 2.2, 'SliceTime031': 1.0, 'SliceTime032': 2.3, 'SliceTime033': 1.0, 'SliceTime034': 2.4, 'SliceTime035': 1.1, 'SliceTime036': 2.4, 'SliceTime037': 1.2}
if dict_0 == split_params:
print("YAY")
else:
print("STUPID")
[ ]: