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")
[ ]: