From 3e8b178f3a59093d363f2352ffce52224cb8fb58 Mon Sep 17 00:00:00 2001 From: Parsa Oveisi Date: Mon, 1 Aug 2022 16:48:51 -0400 Subject: [PATCH 1/3] adjusted mislabeled hbm filetypes --- kftools/data/fetchers.py | 16 +++++++++------- kftools/data/info.txt | 6 +++--- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/kftools/data/fetchers.py b/kftools/data/fetchers.py index 198c442..7a9ad81 100644 --- a/kftools/data/fetchers.py +++ b/kftools/data/fetchers.py @@ -1,8 +1,8 @@ +from curses import raw import os,sys,glob,shutil,numpy as np, pandas as pd import requests, zipfile,gdown from datetime import datetime -#from eegnb import DATA_DIR - +from mne.io.snirf import read_raw_snirf from kftools import data # dictionary format : kftools -> type -> experiments -> site -> subjects @@ -35,7 +35,7 @@ def fetch_file(data_dir=None,info_file=None,site='snic',task='ft',subid='sub001' filetype='kp-nii-evs', download_method='gdown'): """ - Pull selected data files. + Pull selected data files and load into dictionary as mne.raw objects Usage: ------ @@ -50,8 +50,8 @@ def fetch_file(data_dir=None,info_file=None,site='snic',task='ft',subid='sub001' """ - - + raw_dict = {} # dictionary containing mne raw objects + if 'NoneType' in str(type(data_dir)): data_dir = os.path.expanduser('~/.kftools') if not os.path.isdir(data_dir): os.makedirs(data_dir) @@ -66,12 +66,14 @@ def fetch_file(data_dir=None,info_file=None,site='snic',task='ft',subid='sub001' assert eval(k) in df_info[k].values idxstoget = df_info.query(qstr).index.values - for idx in idxstoget: + for n, idx in enumerate(idxstoget): dlcode,fname = df_info.loc[idx][['dlcode', 'fname']].values fname = os.path.join(data_dir, fname) if not os.path.isfile(fname): pull_file(dlcode,fname,download_method) - + raw_dict[n] = read_raw_snirf(fname) + + return raw_dict def pull_file(dlcode,destination,download_method): diff --git a/kftools/data/info.txt b/kftools/data/info.txt index bff2efb..b7fbb19 100644 --- a/kftools/data/info.txt +++ b/kftools/data/info.txt @@ -21,9 +21,9 @@ snic_sub006_reo_ses02_1116-1655_kp-nii-hbo.nii.gz 1v6sbXiDtELiidKeJlOqtT1L5Rdmyp snic_sub006_reo_ses02_1116-1655_kp-nii-hbr.nii.gz 1kOI6GiljhcqeeSzbnLmAKFFOT1UHeN-M snic_sub006_reo_ses03_1117-1740_kp-nii-hbo.nii.gz 1UnXDo19JFth23X7VdDVM04pftMLbFCXy snic_sub006_reo_ses03_1117-1740_kp-nii-hbr.nii.gz 1MmrtuMry25o7yJEtJ-rFRLA1MCUxUyZM -snic_sub006_reo_ses01_1101-1810_kp-snf-hmb.snirf 11fZdBlJDfAtPNtneSat8b4H3I-BxE14l +snic_sub006_reo_ses01_1101-1810_kp-snf-hbm.snirf 11fZdBlJDfAtPNtneSat8b4H3I-BxE14l snic_sub006_reo_ses01_1101-1810_kp-snf-mom.snirf 1Av65sSi-PlVdPcfyZ0u37WrsN1pHLORR -snic_sub006_reo_ses02_1116-1655_kp-snf-hmb.snirf 1mk3u81bo676Sk4j1w8Qi36DxHiUF8u4D +snic_sub006_reo_ses02_1116-1655_kp-snf-hbm.snirf 1mk3u81bo676Sk4j1w8Qi36DxHiUF8u4D snic_sub006_reo_ses02_1116-1655_kp-snf-mom.snirf 1mOsq2wWPgXJFJx-bNpBrTzn5yDF1YYuX -snic_sub006_reo_ses03_1117-1740_kp-snf-hmb.snirf 1TPqZbkqqHHAq68A6GlmrB3NyyY1dNZ2h +snic_sub006_reo_ses03_1117-1740_kp-snf-hbm.snirf 1TPqZbkqqHHAq68A6GlmrB3NyyY1dNZ2h snic_sub006_reo_ses03_1117-1740_kp-snf-mom.snirf 1ff4pc5WRnqwL9w18vzetl5GHDFZ5DuTu From 7eae3fe454d0e16aa091297c08b3faef6ed303ea Mon Sep 17 00:00:00 2001 From: Parsa Oveisi <89212381+P-Oveisi@users.noreply.github.com> Date: Tue, 2 Aug 2022 08:45:23 -0400 Subject: [PATCH 2/3] Update fetchers.py The `fetch_file()` function would download a file from the links in the info.txt file, and to load the snirfs in there needed to be an additional step using `read_raw_snirf()`. Now if `load_raw` argument is true, the function will return a dictionary containing the loaded raw file(s) so it doesn't have to be done manually. --- kftools/data/fetchers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/kftools/data/fetchers.py b/kftools/data/fetchers.py index 7a9ad81..710c7a0 100644 --- a/kftools/data/fetchers.py +++ b/kftools/data/fetchers.py @@ -32,7 +32,7 @@ def load_info(info_file=None): def fetch_file(data_dir=None,info_file=None,site='snic',task='ft',subid='sub001',sesid='ses01', - filetype='kp-nii-evs', download_method='gdown'): + filetype='kp-nii-evs', download_method='gdown', load_raw=True): """ Pull selected data files and load into dictionary as mne.raw objects @@ -71,9 +71,9 @@ def fetch_file(data_dir=None,info_file=None,site='snic',task='ft',subid='sub001' fname = os.path.join(data_dir, fname) if not os.path.isfile(fname): pull_file(dlcode,fname,download_method) - raw_dict[n] = read_raw_snirf(fname) - - return raw_dict + if load_raw: + raw_dict[n] = read_raw_snirf(fname) + return raw_dict def pull_file(dlcode,destination,download_method): From f1b80e213a22281fe72dfbf9642f5522da8d84de Mon Sep 17 00:00:00 2001 From: Parsa Oveisi <89212381+P-Oveisi@users.noreply.github.com> Date: Tue, 2 Aug 2022 08:53:05 -0400 Subject: [PATCH 3/3] Update fetchers.py If the fetched file is a snirf, and if the `load_raw` argument is true, load in the downloaded file as an mne raw object. --- kftools/data/fetchers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kftools/data/fetchers.py b/kftools/data/fetchers.py index 710c7a0..5cb7ede 100644 --- a/kftools/data/fetchers.py +++ b/kftools/data/fetchers.py @@ -71,7 +71,7 @@ def fetch_file(data_dir=None,info_file=None,site='snic',task='ft',subid='sub001' fname = os.path.join(data_dir, fname) if not os.path.isfile(fname): pull_file(dlcode,fname,download_method) - if load_raw: + if load_raw and 'snf' in filetype: raw_dict[n] = read_raw_snirf(fname) return raw_dict