diff --git a/README.md b/README.md index 8dda350..90e16b2 100644 --- a/README.md +++ b/README.md @@ -16,21 +16,21 @@ pip install git+https://github.com/individual-brain-charting/api.git#egg=ibc_api ```python import ibc_api.utils as ibc -# Returns a link that takes you to EBRAINS login page and stores an access token locally -ibc.authenticate() - # Fetch info on all available files # Load as a pandas dataframe and save as ibc_data/available_{data_type}.csv db = ibc.get_info(data_type="volume_maps") # Keep statistic maps for sub-08, for task-Discount -filtered_db = ibc.filter_data(db, subject_list=["sub-08"], task_list=["Discount"]) +filtered_db = ibc.filter_data(db, subject_list=["08"], task_list=["Discount"]) + +# Authenticate with EBRAINS before downloading +# Returns a link that takes you to EBRAINS login page and stores an access token locally +ibc.authenticate() # Download all statistic maps for sub-08, task-Discount -# Saved under ibc_data/resulting_smooth_maps/sub-08/task-Discount # Also creates ibc_data/downloaded_volume_maps.csv -# which contains downloaded file paths and time of download -downloaded_db = ibc.download_data(filtered_db, organise_by='task') +# which contains local file paths and time of download +downloaded_db = ibc.download_data(filtered_db) ``` # Note Since this api is under active development, make sure to update it regularly diff --git a/examples/example.py b/examples/example.py index 87080ad..d6b5177 100644 --- a/examples/example.py +++ b/examples/example.py @@ -1,17 +1,17 @@ import ibc_api.utils as ibc -# Returns a link that takes you to EBRAINS login page and stores an access token locally -ibc.authenticate() - # Fetch info on all available files -# Load as a pandas dataframe and save as ibc_data/available_{data_type}.csv +# Load as a pandas dataframe and save as ibc_data/available_{data_type}.csv db = ibc.get_info(data_type="volume_maps") # Keep statistic maps for sub-08, for task-Discount -filtered_db = ibc.filter_data(db, subject_list=["sub-08"], task_list=["Discount"]) +filtered_db = ibc.filter_data(db, subject_list=["08"], task_list=["Discount"]) + +# Authenticate with EBRAINS before downloading +# Returns a link that takes you to EBRAINS login page and stores an access token locally +ibc.authenticate() -# Download all statistic maps for sub-08, task-Discount -# Saved under ibc_data/resulting_smooth_maps/sub-08/task-Discount -# Also creates ibc_data/downloaded_volume_maps.csv -# which contains downloaded file paths and time of download -downloaded_db = ibc.download_data(filtered_db, organise_by='task') \ No newline at end of file +# Download all statistic maps for sub-08, task-Discount +# Also creates ibc_data/downloaded_volume_maps.csv +# which contains local file paths and time of download +downloaded_db = ibc.download_data(filtered_db) diff --git a/examples/get_data.ipynb b/examples/get_data.ipynb index 159e192..c1b787e 100644 --- a/examples/get_data.ipynb +++ b/examples/get_data.ipynb @@ -14,7 +14,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Import this tool as follows:" + "Import the fetcher as follows:" ] }, { @@ -26,7 +26,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "[siibra:INFO] Version: 0.4a61\n", + "[siibra:INFO] Version: 0.4a47\n", "[siibra:WARNING] This is a development release. Use at your own risk.\n", "[siibra:INFO] Please file bugs and issues at https://github.com/FZJ-INM1-BDA/siibra-python.\n" ] @@ -36,34 +36,6 @@ "import ibc_api.utils as ibc" ] }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Then authenticate with EBRAINS. This will return a link that takes you to EBRAINS login page and stores an access token locally.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "***\n", - "To continue, please go to https://iam.ebrains.eu/auth/realms/hbp/device?user_code=USBN-YMBC\n", - "***\n", - "ebrains token successfuly set.\n" - ] - } - ], - "source": [ - "ibc.authenticate()" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -78,17 +50,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[siibra:INFO] 139625 objects found for dataset ad04f919-7dcc-48d9-864a-d7b62af3d49d returned.\n" - ] - } - ], + "outputs": [], "source": [ "db = ibc.get_info(data_type=\"volume_maps\")" ] @@ -103,7 +67,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -127,101 +91,113 @@ " \n", " \n", " \n", - " modality\n", - " image_type\n", - " map_type\n", - " study\n", + " subject\n", + " session\n", + " desc\n", + " hemi\n", " task\n", - " analysis_level\n", - " number_of_subjects\n", - " tags\n", - " cognitive_paradigm_cogatlas\n", - " cognitive_paradigm_description_url\n", - " contrast_definition\n", + " direction\n", + " run\n", + " space\n", + " suffix\n", + " datatype\n", + " extension\n", + " contrast\n", + " megabytes\n", + " dataset\n", " path\n", - " subject\n", " \n", " \n", " \n", " \n", " 0\n", - " fMRI-BOLD\n", + " 01\n", + " 00\n", + " preproc\n", + " NaN\n", + " ArchiSocial\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " false_belief-mechanistic\n", + " 0.000552\n", " volume_maps\n", - " Z\n", - " IBC\n", - " ArchiStandard\n", - " S\n", - " 1\n", - " visual_sentence_comprehension,response_selecti...\n", - " trm_5873cd1c9d4c4\n", - " http://www.cognitiveatlas.org/task/id/trm_5873...\n", - " left hand button presses upon video instructions\n", - " sub-01_ses-00_task-ArchiStandard_dir-ap_space-...\n", - " sub-01\n", + " sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d...\n", " \n", " \n", " 1\n", - " fMRI-BOLD\n", + " 01\n", + " 00\n", + " preproc\n", + " NaN\n", + " ArchiSocial\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " false_belief-mechanistic\n", + " 2.896178\n", " volume_maps\n", - " Z\n", - " IBC\n", - " ArchiStandard\n", - " S\n", - " 1\n", - " visual_sentence_comprehension,response_selecti...\n", - " trm_5873cd1c9d4c4\n", - " http://www.cognitiveatlas.org/task/id/trm_5873...\n", - " left hand button presses upon video instructions\n", - " sub-01_ses-00_task-ArchiStandard_dir-ffx_space...\n", - " sub-01\n", + " sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d...\n", " \n", " \n", " 2\n", - " fMRI-BOLD\n", + " 01\n", + " 00\n", + " preproc\n", + " NaN\n", + " ArchiSocial\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " audio\n", + " NaN\n", + " .json\n", + " false_belief-mechanistic_audio\n", + " 0.000543\n", " volume_maps\n", - " Z\n", - " IBC\n", - " ArchiStandard\n", - " S\n", - " 1\n", - " visual_sentence_comprehension,response_selecti...\n", - " trm_5873cd1c9d4c4\n", - " http://www.cognitiveatlas.org/task/id/trm_5873...\n", - " left hand button presses upon video instructions\n", - " sub-01_ses-00_task-ArchiStandard_dir-pa_space-...\n", - " sub-01\n", + " sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d...\n", " \n", " \n", " 3\n", - " fMRI-BOLD\n", + " 01\n", + " 00\n", + " preproc\n", + " NaN\n", + " ArchiSocial\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " audio\n", + " NaN\n", + " .nii.gz\n", + " false_belief-mechanistic_audio\n", + " 2.893414\n", " volume_maps\n", - " Z\n", - " IBC\n", - " ArchiStandard\n", - " S\n", - " 1\n", - " visual_sentence_comprehension,response_selecti...\n", - " trm_5873cd1c9d4c4\n", - " http://www.cognitiveatlas.org/task/id/trm_5873...\n", - " left hand button presses upon video instructions\n", - " sub-01_ses-07_task-ArchiStandard_dir-ap_space-...\n", - " sub-01\n", + " sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d...\n", " \n", " \n", " 4\n", - " fMRI-BOLD\n", + " 01\n", + " 00\n", + " preproc\n", + " NaN\n", + " ArchiSocial\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " video\n", + " NaN\n", + " .json\n", + " false_belief-mechanistic_video\n", + " 0.000543\n", " volume_maps\n", - " Z\n", - " IBC\n", - " ArchiStandard\n", - " S\n", - " 1\n", - " visual_sentence_comprehension,response_selecti...\n", - " trm_5873cd1c9d4c4\n", - " http://www.cognitiveatlas.org/task/id/trm_5873...\n", - " left hand button presses upon video instructions\n", - " sub-01_ses-07_task-ArchiStandard_dir-ffx_space...\n", - " sub-01\n", + " sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d...\n", " \n", " \n", " ...\n", @@ -238,175 +214,161 @@ " ...\n", " ...\n", " ...\n", + " ...\n", + " ...\n", " \n", " \n", - " 26568\n", - " fMRI-BOLD\n", + " 53219\n", + " 15\n", + " 40\n", + " preproc\n", + " NaN\n", + " Scene\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " correct\n", + " NaN\n", + " .json\n", + " scene_correct-dot_correct\n", + " 0.000570\n", " volume_maps\n", - " Z\n", - " IBC\n", - " RewProc\n", - " S\n", - " 1\n", - " reward_valuation,reward_processing\n", - " trm_550b5c1a7f4db\n", - " http://www.cognitiveatlas.org/task/id/trm_550b...\n", - " gained vs lost 20 or 10 units of reward\n", - " sub-15_ses-39_task-RewProc_dir-unknown_space-M...\n", - " sub-15\n", - " \n", - " \n", - " 26569\n", - " fMRI-BOLD\n", + " sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx...\n", + " \n", + " \n", + " 53220\n", + " 15\n", + " 40\n", + " preproc\n", + " NaN\n", + " Scene\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " correct\n", + " NaN\n", + " .json\n", + " scene_impossible_correct\n", + " 0.000618\n", " volume_maps\n", - " Z\n", - " IBC\n", - " RewProc\n", - " S\n", - " 1\n", - " reward_valuation,reward_processing\n", - " trm_550b5c1a7f4db\n", - " http://www.cognitiveatlas.org/task/id/trm_550b...\n", - " gained vs lost 20 or 10 units of reward\n", - " sub-15_ses-39_task-RewProc_dir-unknown_space-M...\n", - " sub-15\n", - " \n", - " \n", - " 26570\n", - " fMRI-BOLD\n", + " sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx...\n", + " \n", + " \n", + " 53221\n", + " 15\n", + " 40\n", + " preproc\n", + " NaN\n", + " Scene\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " incorrect\n", + " NaN\n", + " .json\n", + " scene_impossible_incorrect\n", + " 0.000614\n", " volume_maps\n", - " Z\n", - " IBC\n", - " RewProc\n", - " S\n", - " 1\n", - " risk_aversion,risk_processing,loss_aversion\n", - " trm_550b5c1a7f4db\n", - " http://www.cognitiveatlas.org/task/id/trm_550b...\n", - " lost vs gained 20 or 10 units of reward\n", - " sub-15_ses-39_task-RewProc_dir-ffx_space-MNI15...\n", - " sub-15\n", - " \n", - " \n", - " 26571\n", - " fMRI-BOLD\n", + " sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx...\n", + " \n", + " \n", + " 53222\n", + " 15\n", + " 40\n", + " preproc\n", + " NaN\n", + " Scene\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " correct\n", + " NaN\n", + " .json\n", + " scene_possible_correct-scene_impossible_correct\n", + " 0.000598\n", " volume_maps\n", - " Z\n", - " IBC\n", - " RewProc\n", - " S\n", - " 1\n", - " risk_aversion,risk_processing,loss_aversion\n", - " trm_550b5c1a7f4db\n", - " http://www.cognitiveatlas.org/task/id/trm_550b...\n", - " lost vs gained 20 or 10 units of reward\n", - " sub-15_ses-39_task-RewProc_dir-unknown_space-M...\n", - " sub-15\n", - " \n", - " \n", - " 26572\n", - " fMRI-BOLD\n", + " sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx...\n", + " \n", + " \n", + " 53223\n", + " 15\n", + " 40\n", + " preproc\n", + " NaN\n", + " Scene\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " correct\n", + " NaN\n", + " .json\n", + " scene_possible_correct\n", + " 0.000597\n", " volume_maps\n", - " Z\n", - " IBC\n", - " RewProc\n", - " S\n", - " 1\n", - " risk_aversion,risk_processing,loss_aversion\n", - " trm_550b5c1a7f4db\n", - " http://www.cognitiveatlas.org/task/id/trm_550b...\n", - " lost vs gained 20 or 10 units of reward\n", - " sub-15_ses-39_task-RewProc_dir-unknown_space-M...\n", - " sub-15\n", + " sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx...\n", " \n", " \n", "\n", - "

26573 rows × 13 columns

\n", + "

53224 rows × 15 columns

\n", "" ], "text/plain": [ - " modality image_type map_type study task analysis_level \\\n", - "0 fMRI-BOLD volume_maps Z IBC ArchiStandard S \n", - "1 fMRI-BOLD volume_maps Z IBC ArchiStandard S \n", - "2 fMRI-BOLD volume_maps Z IBC ArchiStandard S \n", - "3 fMRI-BOLD volume_maps Z IBC ArchiStandard S \n", - "4 fMRI-BOLD volume_maps Z IBC ArchiStandard S \n", - "... ... ... ... ... ... ... \n", - "26568 fMRI-BOLD volume_maps Z IBC RewProc S \n", - "26569 fMRI-BOLD volume_maps Z IBC RewProc S \n", - "26570 fMRI-BOLD volume_maps Z IBC RewProc S \n", - "26571 fMRI-BOLD volume_maps Z IBC RewProc S \n", - "26572 fMRI-BOLD volume_maps Z IBC RewProc S \n", - "\n", - " number_of_subjects tags \\\n", - "0 1 visual_sentence_comprehension,response_selecti... \n", - "1 1 visual_sentence_comprehension,response_selecti... \n", - "2 1 visual_sentence_comprehension,response_selecti... \n", - "3 1 visual_sentence_comprehension,response_selecti... \n", - "4 1 visual_sentence_comprehension,response_selecti... \n", - "... ... ... \n", - "26568 1 reward_valuation,reward_processing \n", - "26569 1 reward_valuation,reward_processing \n", - "26570 1 risk_aversion,risk_processing,loss_aversion \n", - "26571 1 risk_aversion,risk_processing,loss_aversion \n", - "26572 1 risk_aversion,risk_processing,loss_aversion \n", + " subject session desc hemi task direction run \\\n", + "0 01 00 preproc NaN ArchiSocial ap \n", + "1 01 00 preproc NaN ArchiSocial ap \n", + "2 01 00 preproc NaN ArchiSocial ap \n", + "3 01 00 preproc NaN ArchiSocial ap \n", + "4 01 00 preproc NaN ArchiSocial ap \n", + "... ... ... ... ... ... ... .. \n", + "53219 15 40 preproc NaN Scene ffx \n", + "53220 15 40 preproc NaN Scene ffx \n", + "53221 15 40 preproc NaN Scene ffx \n", + "53222 15 40 preproc NaN Scene ffx \n", + "53223 15 40 preproc NaN Scene ffx \n", "\n", - " cognitive_paradigm_cogatlas \\\n", - "0 trm_5873cd1c9d4c4 \n", - "1 trm_5873cd1c9d4c4 \n", - "2 trm_5873cd1c9d4c4 \n", - "3 trm_5873cd1c9d4c4 \n", - "4 trm_5873cd1c9d4c4 \n", - "... ... \n", - "26568 trm_550b5c1a7f4db \n", - "26569 trm_550b5c1a7f4db \n", - "26570 trm_550b5c1a7f4db \n", - "26571 trm_550b5c1a7f4db \n", - "26572 trm_550b5c1a7f4db \n", + " space suffix datatype extension \\\n", + "0 MNI152NLin2009cAsym NaN NaN .json \n", + "1 MNI152NLin2009cAsym NaN NaN .nii.gz \n", + "2 MNI152NLin2009cAsym audio NaN .json \n", + "3 MNI152NLin2009cAsym audio NaN .nii.gz \n", + "4 MNI152NLin2009cAsym video NaN .json \n", + "... ... ... ... ... \n", + "53219 MNI152NLin2009cAsym correct NaN .json \n", + "53220 MNI152NLin2009cAsym correct NaN .json \n", + "53221 MNI152NLin2009cAsym incorrect NaN .json \n", + "53222 MNI152NLin2009cAsym correct NaN .json \n", + "53223 MNI152NLin2009cAsym correct NaN .json \n", "\n", - " cognitive_paradigm_description_url \\\n", - "0 http://www.cognitiveatlas.org/task/id/trm_5873... \n", - "1 http://www.cognitiveatlas.org/task/id/trm_5873... \n", - "2 http://www.cognitiveatlas.org/task/id/trm_5873... \n", - "3 http://www.cognitiveatlas.org/task/id/trm_5873... \n", - "4 http://www.cognitiveatlas.org/task/id/trm_5873... \n", - "... ... \n", - "26568 http://www.cognitiveatlas.org/task/id/trm_550b... \n", - "26569 http://www.cognitiveatlas.org/task/id/trm_550b... \n", - "26570 http://www.cognitiveatlas.org/task/id/trm_550b... \n", - "26571 http://www.cognitiveatlas.org/task/id/trm_550b... \n", - "26572 http://www.cognitiveatlas.org/task/id/trm_550b... \n", + " contrast megabytes \\\n", + "0 false_belief-mechanistic 0.000552 \n", + "1 false_belief-mechanistic 2.896178 \n", + "2 false_belief-mechanistic_audio 0.000543 \n", + "3 false_belief-mechanistic_audio 2.893414 \n", + "4 false_belief-mechanistic_video 0.000543 \n", + "... ... ... \n", + "53219 scene_correct-dot_correct 0.000570 \n", + "53220 scene_impossible_correct 0.000618 \n", + "53221 scene_impossible_incorrect 0.000614 \n", + "53222 scene_possible_correct-scene_impossible_correct 0.000598 \n", + "53223 scene_possible_correct 0.000597 \n", "\n", - " contrast_definition \\\n", - "0 left hand button presses upon video instructions \n", - "1 left hand button presses upon video instructions \n", - "2 left hand button presses upon video instructions \n", - "3 left hand button presses upon video instructions \n", - "4 left hand button presses upon video instructions \n", - "... ... \n", - "26568 gained vs lost 20 or 10 units of reward \n", - "26569 gained vs lost 20 or 10 units of reward \n", - "26570 lost vs gained 20 or 10 units of reward \n", - "26571 lost vs gained 20 or 10 units of reward \n", - "26572 lost vs gained 20 or 10 units of reward \n", + " dataset path \n", + "0 volume_maps sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d... \n", + "1 volume_maps sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d... \n", + "2 volume_maps sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d... \n", + "3 volume_maps sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d... \n", + "4 volume_maps sub-01/ses-00/sub-01_ses-00_task-ArchiSocial_d... \n", + "... ... ... \n", + "53219 volume_maps sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx... \n", + "53220 volume_maps sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx... \n", + "53221 volume_maps sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx... \n", + "53222 volume_maps sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx... \n", + "53223 volume_maps sub-15/ses-40/sub-15_ses-40_task-Scene_dir-ffx... \n", "\n", - " path subject \n", - "0 sub-01_ses-00_task-ArchiStandard_dir-ap_space-... sub-01 \n", - "1 sub-01_ses-00_task-ArchiStandard_dir-ffx_space... sub-01 \n", - "2 sub-01_ses-00_task-ArchiStandard_dir-pa_space-... sub-01 \n", - "3 sub-01_ses-07_task-ArchiStandard_dir-ap_space-... sub-01 \n", - "4 sub-01_ses-07_task-ArchiStandard_dir-ffx_space... sub-01 \n", - "... ... ... \n", - "26568 sub-15_ses-39_task-RewProc_dir-unknown_space-M... sub-15 \n", - "26569 sub-15_ses-39_task-RewProc_dir-unknown_space-M... sub-15 \n", - "26570 sub-15_ses-39_task-RewProc_dir-ffx_space-MNI15... sub-15 \n", - "26571 sub-15_ses-39_task-RewProc_dir-unknown_space-M... sub-15 \n", - "26572 sub-15_ses-39_task-RewProc_dir-unknown_space-M... sub-15 \n", - "\n", - "[26573 rows x 13 columns]" + "[53224 rows x 15 columns]" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -419,7 +381,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "There are over 26000 statistic maps available for download.\n", + "There are over 26000 statistic maps (half of the rows because there are .json files corresponding to each map) available for download.\n", "But since it's a pandas dataframe, we can filter it to get just what we want.\n", "Let's see how many statistic maps are available for each task.\n", "\n" @@ -427,73 +389,74 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Audio 2926\n", - "MathLanguage 2880\n", - "ArchiStandard 1794\n", - "RSVPLanguage 1729\n", - "MTTNS 912\n", - "MTTWE 912\n", - "Audi 900\n", - "SpatialNavigation 864\n", - "ArchiSocial 702\n", - "Self 660\n", - "Visu 576\n", - "BiologicalMotion1 550\n", - "BiologicalMotion2 550\n", - "VSTMC 550\n", - "HcpWm 546\n", - "ArchiEmotional 546\n", - "ArchiSpatial 546\n", - "RewProc 459\n", - "FaceBody 450\n", - "HcpMotor 429\n", - "MVEB 396\n", - "DotPatterns 363\n", - "NARPS 360\n", - "WardAndAllport 330\n", - "Scene 330\n", - "TwoByTwo 330\n", - "Attention 330\n", - "EmoReco 330\n", - "MCSE 324\n", - "Moto 324\n", - "SelectiveStopSignal 264\n", - "StopNogo 231\n", - "Lec1 216\n", - "MVIS 216\n", - "EmoMem 198\n", - "VSTM 180\n", - "FingerTapping 165\n", - "HcpLanguage 156\n", - "HcpGambling 156\n", - "HcpEmotion 156\n", - "HcpSocial 117\n", - "HcpRelational 117\n", - "PreferenceFaces 111\n", - "TheoryOfMind 108\n", - "EmotionalPain 108\n", - "PreferenceFood 108\n", - "Lec2 108\n", - "PreferenceHouses 108\n", - "Enumeration 108\n", - "PainMovie 108\n", - "PreferencePaintings 105\n", - "Stroop 99\n", - "Catell 99\n", - "StopSignal 99\n", - "ColumbiaCards 96\n", - "Bang 72\n", - "Discount 66\n", - "Name: task, dtype: int64" + "task\n", + "Audio 5852\n", + "MathLanguage 5760\n", + "ArchiStandard 3588\n", + "RSVPLanguage 3458\n", + "MTTNS 1824\n", + "MTTWE 1824\n", + "Audi 1800\n", + "SpatialNavigation 1728\n", + "ArchiSocial 1404\n", + "Self 1320\n", + "Visu 1152\n", + "BiologicalMotion2 1100\n", + "VSTMC 1100\n", + "BiologicalMotion1 1100\n", + "HcpWm 1092\n", + "ArchiSpatial 1092\n", + "ArchiEmotional 1092\n", + "FaceBody 945\n", + "RewProc 918\n", + "HcpMotor 858\n", + "MVEB 792\n", + "DotPatterns 726\n", + "NARPS 720\n", + "Scene 693\n", + "Attention 660\n", + "EmoReco 660\n", + "WardAndAllport 660\n", + "TwoByTwo 660\n", + "MCSE 648\n", + "Moto 648\n", + "SelectiveStopSignal 528\n", + "StopNogo 462\n", + "Lec1 432\n", + "MVIS 432\n", + "EmoMem 396\n", + "VSTM 360\n", + "FingerTapping 330\n", + "HcpEmotion 312\n", + "HcpGambling 312\n", + "HcpLanguage 312\n", + "HcpRelational 234\n", + "HcpSocial 234\n", + "PreferenceFaces 222\n", + "EmotionalPain 216\n", + "Enumeration 216\n", + "PreferenceHouses 216\n", + "PainMovie 216\n", + "Lec2 216\n", + "TheoryOfMind 216\n", + "PreferenceFood 216\n", + "PreferencePaintings 210\n", + "Stroop 198\n", + "Catell 198\n", + "StopSignal 198\n", + "ColumbiaCards 192\n", + "Bang 144\n", + "Discount 132\n", + "Name: count, dtype: int64" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -519,7 +482,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -543,182 +506,326 @@ " \n", " \n", " \n", - " modality\n", - " image_type\n", - " map_type\n", - " study\n", + " subject\n", + " session\n", + " desc\n", + " hemi\n", " task\n", - " analysis_level\n", - " number_of_subjects\n", - " tags\n", - " cognitive_paradigm_cogatlas\n", - " cognitive_paradigm_description_url\n", - " contrast_definition\n", + " direction\n", + " run\n", + " space\n", + " suffix\n", + " datatype\n", + " extension\n", + " contrast\n", + " megabytes\n", + " dataset\n", " path\n", - " subject\n", " \n", " \n", " \n", " \n", - " 12500\n", - " fMRI-BOLD\n", + " 25624\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", + " Discount\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " amount\n", + " 0.000503\n", + " volume_maps\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25625\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", + " Discount\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " amount\n", + " 2.921305\n", + " volume_maps\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25626\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", + " Discount\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " delay\n", + " 0.000505\n", + " volume_maps\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25627\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", + " Discount\n", + " ap\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " delay\n", + " 2.923846\n", + " volume_maps\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25628\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", + " Discount\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " amount\n", + " 0.000504\n", + " volume_maps\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25629\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", + " Discount\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " amount\n", + " 2.925251\n", " volume_maps\n", - " Z\n", - " IBC\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25630\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", " Discount\n", - " S\n", - " 1\n", - " response_conflict,selective_control\n", - " trm_566748c929afc\n", - " http://www.cognitiveatlas.org/task/id/trm_5667...\n", - " effect of delay on reward\n", - " sub-08_ses-27_task-Discount_dir-ap_space-MNI15...\n", - " sub-08\n", - " \n", - " \n", - " 12501\n", - " fMRI-BOLD\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " delay\n", + " 0.000506\n", " volume_maps\n", - " Z\n", - " IBC\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25631\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", " Discount\n", - " S\n", - " 1\n", - " response_conflict,selective_control\n", - " trm_566748c929afc\n", - " http://www.cognitiveatlas.org/task/id/trm_5667...\n", - " effect of delay on reward\n", - " sub-08_ses-27_task-Discount_dir-ffx_space-MNI1...\n", - " sub-08\n", - " \n", - " \n", - " 12502\n", - " fMRI-BOLD\n", + " ffx\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " delay\n", + " 2.925747\n", " volume_maps\n", - " Z\n", - " IBC\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25632\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", " Discount\n", - " S\n", - " 1\n", - " response_conflict,selective_control\n", - " trm_566748c929afc\n", - " http://www.cognitiveatlas.org/task/id/trm_5667...\n", - " effect of delay on reward\n", - " sub-08_ses-27_task-Discount_dir-pa_space-MNI15...\n", - " sub-08\n", - " \n", - " \n", - " 12503\n", - " fMRI-BOLD\n", + " pa\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " amount\n", + " 0.000503\n", " volume_maps\n", - " Z\n", - " IBC\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25633\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", " Discount\n", - " S\n", - " 1\n", - " incentive_salience,selective_control\n", - " trm_566748c929afc\n", - " http://www.cognitiveatlas.org/task/id/trm_5667...\n", - " effect of reward gain\n", - " sub-08_ses-27_task-Discount_dir-ap_space-MNI15...\n", - " sub-08\n", - " \n", - " \n", - " 12504\n", - " fMRI-BOLD\n", + " pa\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " amount\n", + " 2.921803\n", " volume_maps\n", - " Z\n", - " IBC\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25634\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", " Discount\n", - " S\n", - " 1\n", - " incentive_salience,selective_control\n", - " trm_566748c929afc\n", - " http://www.cognitiveatlas.org/task/id/trm_5667...\n", - " effect of reward gain\n", - " sub-08_ses-27_task-Discount_dir-ffx_space-MNI1...\n", - " sub-08\n", - " \n", - " \n", - " 12505\n", - " fMRI-BOLD\n", + " pa\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .json\n", + " delay\n", + " 0.000505\n", " volume_maps\n", - " Z\n", - " IBC\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", + " \n", + " \n", + " 25635\n", + " 08\n", + " 27\n", + " preproc\n", + " NaN\n", " Discount\n", - " S\n", - " 1\n", - " incentive_salience,selective_control\n", - " trm_566748c929afc\n", - " http://www.cognitiveatlas.org/task/id/trm_5667...\n", - " effect of reward gain\n", - " sub-08_ses-27_task-Discount_dir-pa_space-MNI15...\n", - " sub-08\n", + " pa\n", + " \n", + " MNI152NLin2009cAsym\n", + " NaN\n", + " NaN\n", + " .nii.gz\n", + " delay\n", + " 2.920833\n", + " volume_maps\n", + " sub-08/ses-27/sub-08_ses-27_task-Discount_dir-...\n", " \n", " \n", "\n", "" ], "text/plain": [ - " modality image_type map_type study task analysis_level \\\n", - "12500 fMRI-BOLD volume_maps Z IBC Discount S \n", - "12501 fMRI-BOLD volume_maps Z IBC Discount S \n", - "12502 fMRI-BOLD volume_maps Z IBC Discount S \n", - "12503 fMRI-BOLD volume_maps Z IBC Discount S \n", - "12504 fMRI-BOLD volume_maps Z IBC Discount S \n", - "12505 fMRI-BOLD volume_maps Z IBC Discount S \n", - "\n", - " number_of_subjects tags \\\n", - "12500 1 response_conflict,selective_control \n", - "12501 1 response_conflict,selective_control \n", - "12502 1 response_conflict,selective_control \n", - "12503 1 incentive_salience,selective_control \n", - "12504 1 incentive_salience,selective_control \n", - "12505 1 incentive_salience,selective_control \n", - "\n", - " cognitive_paradigm_cogatlas \\\n", - "12500 trm_566748c929afc \n", - "12501 trm_566748c929afc \n", - "12502 trm_566748c929afc \n", - "12503 trm_566748c929afc \n", - "12504 trm_566748c929afc \n", - "12505 trm_566748c929afc \n", - "\n", - " cognitive_paradigm_description_url \\\n", - "12500 http://www.cognitiveatlas.org/task/id/trm_5667... \n", - "12501 http://www.cognitiveatlas.org/task/id/trm_5667... \n", - "12502 http://www.cognitiveatlas.org/task/id/trm_5667... \n", - "12503 http://www.cognitiveatlas.org/task/id/trm_5667... \n", - "12504 http://www.cognitiveatlas.org/task/id/trm_5667... \n", - "12505 http://www.cognitiveatlas.org/task/id/trm_5667... \n", + " subject session desc hemi task direction run \\\n", + "25624 08 27 preproc NaN Discount ap \n", + "25625 08 27 preproc NaN Discount ap \n", + "25626 08 27 preproc NaN Discount ap \n", + "25627 08 27 preproc NaN Discount ap \n", + "25628 08 27 preproc NaN Discount ffx \n", + "25629 08 27 preproc NaN Discount ffx \n", + "25630 08 27 preproc NaN Discount ffx \n", + "25631 08 27 preproc NaN Discount ffx \n", + "25632 08 27 preproc NaN Discount pa \n", + "25633 08 27 preproc NaN Discount pa \n", + "25634 08 27 preproc NaN Discount pa \n", + "25635 08 27 preproc NaN Discount pa \n", "\n", - " contrast_definition \\\n", - "12500 effect of delay on reward \n", - "12501 effect of delay on reward \n", - "12502 effect of delay on reward \n", - "12503 effect of reward gain \n", - "12504 effect of reward gain \n", - "12505 effect of reward gain \n", + " space suffix datatype extension contrast megabytes \\\n", + "25624 MNI152NLin2009cAsym NaN NaN .json amount 0.000503 \n", + "25625 MNI152NLin2009cAsym NaN NaN .nii.gz amount 2.921305 \n", + "25626 MNI152NLin2009cAsym NaN NaN .json delay 0.000505 \n", + "25627 MNI152NLin2009cAsym NaN NaN .nii.gz delay 2.923846 \n", + "25628 MNI152NLin2009cAsym NaN NaN .json amount 0.000504 \n", + "25629 MNI152NLin2009cAsym NaN NaN .nii.gz amount 2.925251 \n", + "25630 MNI152NLin2009cAsym NaN NaN .json delay 0.000506 \n", + "25631 MNI152NLin2009cAsym NaN NaN .nii.gz delay 2.925747 \n", + "25632 MNI152NLin2009cAsym NaN NaN .json amount 0.000503 \n", + "25633 MNI152NLin2009cAsym NaN NaN .nii.gz amount 2.921803 \n", + "25634 MNI152NLin2009cAsym NaN NaN .json delay 0.000505 \n", + "25635 MNI152NLin2009cAsym NaN NaN .nii.gz delay 2.920833 \n", "\n", - " path subject \n", - "12500 sub-08_ses-27_task-Discount_dir-ap_space-MNI15... sub-08 \n", - "12501 sub-08_ses-27_task-Discount_dir-ffx_space-MNI1... sub-08 \n", - "12502 sub-08_ses-27_task-Discount_dir-pa_space-MNI15... sub-08 \n", - "12503 sub-08_ses-27_task-Discount_dir-ap_space-MNI15... sub-08 \n", - "12504 sub-08_ses-27_task-Discount_dir-ffx_space-MNI1... sub-08 \n", - "12505 sub-08_ses-27_task-Discount_dir-pa_space-MNI15... sub-08 " + " dataset path \n", + "25624 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25625 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25626 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25627 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25628 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25629 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25630 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25631 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25632 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25633 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25634 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... \n", + "25635 volume_maps sub-08/ses-27/sub-08_ses-27_task-Discount_dir-... " ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "filtered_db = ibc.filter_data(db, task_list=[\"Discount\"], subject_list=[\"sub-08\"])\n", + "filtered_db = ibc.filter_data(db, task_list=[\"Discount\"], subject_list=[\"08\"])\n", "filtered_db" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now before we download these files, we need to authenticate with EBRAINS. This will return a link that takes you to EBRAINS login page and stores an access token locally.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "***\n", + "To continue, please go to https://iam.ebrains.eu/auth/realms/hbp/device?user_code=LGDW-XTRE\n", + "***\n", + "ebrains token successfuly set.\n" + ] + } + ], + "source": [ + "ibc.authenticate()" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -740,7 +847,7 @@ "output_type": "stream", "text": [ "[siibra:INFO] 139625 objects found for dataset ad04f919-7dcc-48d9-864a-d7b62af3d49d returned.\n", - "100%|███████████████████████████████████████████████████████| 6/6 [00:01<00:00, 5.65it/s]\n" + "12it [00:01, 11.22it/s]\n" ] }, { @@ -778,54 +885,96 @@ " \n", " \n", " 0\n", - " ibc_data/resulting_smooth_maps/sub-08/task-Dis...\n", - " 2023-07-25 18:23:01.270473\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:15.588770\n", " \n", " \n", " 1\n", - " ibc_data/resulting_smooth_maps/sub-08/task-Dis...\n", - " 2023-07-25 18:23:01.439383\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:15.765652\n", " \n", " \n", " 2\n", - " ibc_data/resulting_smooth_maps/sub-08/task-Dis...\n", - " 2023-07-25 18:23:01.611974\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:15.772669\n", " \n", " \n", " 3\n", - " ibc_data/resulting_smooth_maps/sub-08/task-Dis...\n", - " 2023-07-25 18:23:01.801682\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:15.944780\n", " \n", " \n", " 4\n", - " ibc_data/resulting_smooth_maps/sub-08/task-Dis...\n", - " 2023-07-25 18:23:01.982841\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:15.949580\n", " \n", " \n", " 5\n", - " ibc_data/resulting_smooth_maps/sub-08/task-Dis...\n", - " 2023-07-25 18:23:02.156350\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.116007\n", + " \n", + " \n", + " 6\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.121902\n", + " \n", + " \n", + " 7\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.298023\n", + " \n", + " \n", + " 8\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.302662\n", + " \n", + " \n", + " 9\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.471236\n", + " \n", + " \n", + " 10\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.476903\n", + " \n", + " \n", + " 11\n", + " ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-...\n", + " 2023-09-18 17:37:16.651207\n", " \n", " \n", "\n", "" ], "text/plain": [ - " local_path \\\n", - "0 ibc_data/resulting_smooth_maps/sub-08/task-Dis... \n", - "1 ibc_data/resulting_smooth_maps/sub-08/task-Dis... \n", - "2 ibc_data/resulting_smooth_maps/sub-08/task-Dis... \n", - "3 ibc_data/resulting_smooth_maps/sub-08/task-Dis... \n", - "4 ibc_data/resulting_smooth_maps/sub-08/task-Dis... \n", - "5 ibc_data/resulting_smooth_maps/sub-08/task-Dis... \n", + " local_path \\\n", + "0 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "1 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "2 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "3 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "4 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "5 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "6 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "7 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "8 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "9 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "10 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", + "11 ibc_data/volume_maps/sub-08/ses-27/sub-08_ses-... \n", "\n", - " downloaded_on \n", - "0 2023-07-25 18:23:01.270473 \n", - "1 2023-07-25 18:23:01.439383 \n", - "2 2023-07-25 18:23:01.611974 \n", - "3 2023-07-25 18:23:01.801682 \n", - "4 2023-07-25 18:23:01.982841 \n", - "5 2023-07-25 18:23:02.156350 " + " downloaded_on \n", + "0 2023-09-18 17:37:15.588770 \n", + "1 2023-09-18 17:37:15.765652 \n", + "2 2023-09-18 17:37:15.772669 \n", + "3 2023-09-18 17:37:15.944780 \n", + "4 2023-09-18 17:37:15.949580 \n", + "5 2023-09-18 17:37:16.116007 \n", + "6 2023-09-18 17:37:16.121902 \n", + "7 2023-09-18 17:37:16.298023 \n", + "8 2023-09-18 17:37:16.302662 \n", + "9 2023-09-18 17:37:16.471236 \n", + "10 2023-09-18 17:37:16.476903 \n", + "11 2023-09-18 17:37:16.651207 " ] }, "execution_count": 7, @@ -834,7 +983,7 @@ } ], "source": [ - "downloaded_db = ibc.download_data(filtered_db, organise_by='task')\n", + "downloaded_db = ibc.download_data(filtered_db)\n", "downloaded_db" ] }, @@ -850,18 +999,10 @@ "execution_count": 8, "metadata": {}, "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/himanshu/Desktop/ibc_analysis/ibcpy/lib/python3.8/site-packages/nilearn/plotting/img_plotting.py:300: FutureWarning: Default resolution of the MNI template will change from 2mm to 1mm in version 0.10.0\n", - " anat_img = load_mni152_template()\n" - ] - }, { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -870,9 +1011,9 @@ }, { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -882,7 +1023,7 @@ "source": [ "from nilearn.plotting import plot_stat_map\n", "\n", - "map_path = downloaded_db[\"local_path\"][0]\n", + "map_path = downloaded_db[\"local_path\"][1]\n", "plot_stat_map(map_path)" ] }, diff --git a/src/ibc_api/metadata.py b/src/ibc_api/metadata.py index 71e140f..8e97c98 100644 --- a/src/ibc_api/metadata.py +++ b/src/ibc_api/metadata.py @@ -3,16 +3,12 @@ import json import os -REMOTE_ROOT = ( - "https://api.github.com/repos/individual-brain-charting/docs/contents" -) +REMOTE_ROOT = "https://api.github.com/repos/individual-brain-charting/api/contents/src/ibc_api/data" LOCAL_ROOT = os.path.join(os.path.dirname(__file__), "data") os.makedirs(LOCAL_ROOT, exist_ok=True) -SUBJECTS = [ - f"sub-{sub:02d}" for sub in [1, 2, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15] -] +SUBJECTS = [f"{subject:02}" for subject in range(1, 16)] def _load_json(data_file): @@ -34,7 +30,7 @@ def _load_json(data_file): return data -def select_dataset(data_type, metadata=None): +def select_dataset(data_type, metadata=None, version=None): """Select metadata of the requested dataset Parameters @@ -43,6 +39,8 @@ def select_dataset(data_type, metadata=None): what dataset to select, could be one of 'volume_maps', 'surface_maps', 'preprocessed', 'raw' metadata : dict, optional dictionary object containing version info, dataset ids etc, by default None + version : int, optional + version of the dataset to select, starts from 1, by default None Returns ------- @@ -62,8 +60,23 @@ def select_dataset(data_type, metadata=None): raise KeyError( f"Dataset type {data_type} not found in IBC collection." ) - latest_version = _find_latest_version(dataset) - dataset = dataset[latest_version] + # if user specifies a version of the dataset to use, pick that version + if version is not None: + # version numbers start from 1, but index of the dataset starts from 0 + version = version - 1 + # error handling when the requested version of dataset does not exist + try: + dataset = dataset[version] + except IndexError: + raise IndexError( + f"Version {version + 1} of {data_type} dataset does not exist." + ) + # make sure the version being served is the same as requested + assert dataset["version"] == version + 1 + # if version is not specified simply pick the latest version of dataset + else: + latest_version = _find_latest_version(dataset) + dataset = dataset[latest_version] return dataset diff --git a/src/ibc_api/scripts/create_db.py b/src/ibc_api/scripts/create_db.py new file mode 100644 index 0000000..042bcda --- /dev/null +++ b/src/ibc_api/scripts/create_db.py @@ -0,0 +1,60 @@ +"""Script to create the database from the raw, preprocessed, volume maps and surface maps + data on EBRAINS.""" + +# import libraries +import pandas as pd +import os +import ibc_api.utils as ibc +from bids.layout import parse_file_entities + +datasets = ["raw", "preprocessed", "volume_maps", "surface_maps"] + +ibc.authenticate() +for dataset in datasets: + for version in range(1, 4): + # Get EBRAINS metadata about the dataset + try: + ebrains_data = ibc._connect_ebrains(dataset, version=version) + except (ValueError, IndexError) as error: + print(f"skipping dataset {dataset}, version {version}") + continue + # Get the file names and other info as dataframes + ebrains_df = pd.DataFrame(ebrains_data.__dict__["_files"]) + filenames = ebrains_df["name"].tolist() + # parse filenames using pybids to get all the entities + bids_entities = [] + for file in filenames: + bids_entity = parse_file_entities( + file, include_unmatched=True, config="ibc_conifg.json" + ) + bids_entities.append(bids_entity) + # convert the list of dictionaries with bids entities to a dataframe + bids_df = pd.DataFrame(bids_entities) + # remove rows with empty path + bids_df = bids_df.dropna(how="all") + # add a column with the file sizes in MB + bids_df["megabytes"] = ebrains_df["bytes"].astype(int).div(1024**2) + # add a column with the dataset name + bids_df["dataset"] = [dataset] * len(bids_df) + root_dir = ebrains_df["name"].str.split("/").str[0] + # add a column with the file path without the root directory + path = ebrains_df["name"].str.split("/").str[1:].str.join("/") + bids_df["path"] = path + # separate surface maps and volume maps in different csv files + if dataset == "surface_maps": + mask = (root_dir == "resulting_smooth_maps_surface") & bids_df[ + "extension" + ].isin([".gii", ".json"]) + bids_df = bids_df[mask] + # there are some files with .gii extension in the volume maps folder + # filtering them out + elif dataset == "volume_maps": + mask = (root_dir == "resulting_smooth_maps") & bids_df[ + "extension" + ].isin([".nii.gz", ".json"]) + bids_df = bids_df[mask] + bids_df = bids_df.reset_index(drop=True) + # create a csv file with the bids entities + csv_file = os.path.join("..", "data", f"{dataset}_v{version}.csv") + bids_df.to_csv(csv_file) + print(f"{csv_file} created!") diff --git a/src/ibc_api/scripts/ibc_config.json b/src/ibc_api/scripts/ibc_config.json new file mode 100644 index 0000000..5ff7dc8 --- /dev/null +++ b/src/ibc_api/scripts/ibc_config.json @@ -0,0 +1,58 @@ +{ + "name": "derivatives", + "entities": [ + { + "name": "subject", + "pattern": "[/\\\\]+sub-([a-zA-Z0-9]+)", + "directory": "{subject}" + }, + { + "name": "session", + "pattern": "[_/\\\\]+ses-([a-zA-Z0-9]+)", + "mandatory": false, + "directory": "{subject}{session}" + }, + { + "name": "desc", + "pattern": "desc-([a-zA-Z0-9]+)" + }, + { + "name": "hemi", + "pattern": "hemi-(lh|rh)" + }, + { + "name": "task", + "pattern": "[_/\\\\]+task-([a-zA-Z0-9]+)" + }, + { + "name": "direction", + "pattern": "[_/\\\\]+dir-([a-zA-Z0-9]+)" + }, + { + "name": "run", + "pattern": "[_/\\\\]+run-(\\d+)", + "dtype": "int" + }, + { + "name": "space", + "pattern": "[_/\\\\]+space-([a-zA-Z0-9]+)" + }, + { + "name": "suffix", + "pattern": "(?:^|[_/\\\\])([a-zA-Z0-9]+)\\.[^/\\\\]+$" + }, + { + "name": "datatype", + "pattern": "[/\\\\]+(anat|beh|dwi|eeg|fmap|func|ieeg|meg|motion|micr|nirs|perf|pet)[/\\\\]+" + }, + { + "name": "extension", + "pattern": "[^./\\\\](\\.[^/\\\\]+)$" + }, + { + "name": "contrast", + "pattern": "(?:^|[_/\\\\])+ZMap-(.+?)\\.[^/\\\\]+$" + } + ], + "default_path_patterns": [] +} \ No newline at end of file diff --git a/src/ibc_api/utils.py b/src/ibc_api/utils.py index 5f9fe77..35c037d 100644 --- a/src/ibc_api/utils.py +++ b/src/ibc_api/utils.py @@ -10,6 +10,7 @@ import pandas as pd from datetime import datetime from . import metadata as md +import json # clear cache CACHE.run_maintenance() @@ -28,7 +29,7 @@ def authenticate(): siibra.fetch_ebrains_token() -def _connect_ebrains(data_type="volume_maps", metadata=METADATA): +def _connect_ebrains(data_type="volume_maps", metadata=METADATA, version=None): """Connect to given IBC dataset on EBRAINS via Human Data Gateway. Parameters @@ -37,16 +38,28 @@ def _connect_ebrains(data_type="volume_maps", metadata=METADATA): dataset to fetch, by default "statistic_map", can be one of ["volume_maps", "surface_maps", "preprocessed", "raw] + metadata : dict, optional + dictionary object containing version info, dataset ids etc, by default + METADATA + + version : int, optional + version of the dataset to select, starts from 1, by default None + Returns ------- EbrainsHdgConnector connector to the dataset """ # get the dataset id - dataset = md.select_dataset(data_type, metadata) + dataset = md.select_dataset(data_type, metadata, version) dataset_id = dataset["id"] - return EbrainsHdgConnector(dataset_id) + try: + return EbrainsHdgConnector(dataset_id) + except AttributeError: + raise ValueError( + f"Unable to fetch dataset {data_type}, version {version} from EBRAINS." + ) def _create_root_dir(dir_path=None): @@ -91,14 +104,14 @@ def get_info(data_type="volume_maps", save_to=None, metadata=METADATA): pandas.DataFrame dataframe with information about each file in the dataset """ - # connect to ebrains dataset - connector = _connect_ebrains(data_type) # file with all information about the dataset db_file = md.fetch_dataset_db(data_type, metadata) # load the file as dataframe - db = pd.read_csv(db_file) + # convert subject, session and run to string to avoid losing leading zeros + db = pd.read_csv( + db_file, converters={"subject": str, "session": str, "run": str} + ) db.drop(columns=["Unnamed: 0"], inplace=True, errors="ignore") - db["image_type"] = [data_type for _ in range(len(db))] # save the database file save_to = _create_root_dir(save_to) save_as = os.path.join(save_to, f"available_{data_type}.csv") @@ -115,7 +128,7 @@ def filter_data(db, subject_list=SUBJECTS, task_list=False): dataframe with information about all files in the dataset subject_list : list, optional list of subjects to keep, by default SUBJECTS, SUBJECTS contains all - subjects from sub-01 to sub-15 + subjects from ["01", "02", "04",...,"15"] task_list : list or bool, optional list of tasks to keep, by default False @@ -135,7 +148,7 @@ def filter_data(db, subject_list=SUBJECTS, task_list=False): def get_file_paths(db, metadata=METADATA): - """Get the file paths for each file in a (filtered) dataframe. + """Get the remote and local file paths for each file in a (filtered) dataframe. Parameters ---------- @@ -145,59 +158,34 @@ def get_file_paths(db, metadata=METADATA): Returns ------- - list - list of file paths for each file in the input dataframe + filenames, list + lists of file paths for each file in the input dataframe. First list is the remote file paths and second list is the local file paths """ # get the data type from the db - data_type = db["image_type"].unique() + data_type = db["dataset"].unique() # only fetching one data type at a time for now assert len(data_type) == 1 data_type = data_type[0] # get the file names - _file_names = db["path"].tolist() + file_names = db["path"].tolist() # update file names to be relative to the dataset - file_names = [] - root_dir = md.select_dataset(data_type, metadata)["root"] - for file in _file_names: - # get the subject and session - sub_ses = file.split("_")[:2] + remote_file_names = [] + local_file_names = [] + remote_root_dir = md.select_dataset(data_type, metadata)["root"] + local_root_dir = data_type + for file in file_names: # put the file path together - file = os.path.join(root_dir, *sub_ses, file) - file_names.append(file) - - return file_names - - -def _construct_dir(download_dir, file, organise_by="session"): - """Construct the directory structure to save a file in. + # always use "/" as the separator for remote file paths + remote_file = remote_root_dir + "/" + file + # but separator on local machine could be different + # get all parts of the file path + all_file_parts = file.split("/") + # put the file path together using the local separator + local_file = os.path.join(local_root_dir, *all_file_parts) + remote_file_names.append(remote_file) + local_file_names.append(local_file) - Parameters - ---------- - download_dir : str - top most directory to save the file in - file : str - file path as on ebrains - organise_by : str, optional - whether to organise files under separate task or session folders, - by default "session", could be one of ["session", "task"] - - Returns - ------- - str, str - head and base of the file path to save the file in - """ - file_head, file_base = os.path.split(file) - if organise_by == "session": - file_head = os.path.join(download_dir, file_head) - elif organise_by == "task": - root_dir = file.split(os.sep)[0] - sub_name = file_base.split("_")[0] - task_name = file_base.split("_")[2] - file_head = os.path.join(download_dir, root_dir, sub_name, task_name) - if not os.path.exists(file_head): - os.makedirs(file_head) - - return file_head, file_base + return remote_file_names, local_file_names def _update_local_db(db_file, file_names, file_times): @@ -230,15 +218,11 @@ def _update_local_db(db_file, file_names, file_times): else: # load the database db = pd.read_csv(db_file, index_col=False) - # update the database - db = pd.concat( - [ - db, - pd.DataFrame( - {"local_path": file_names, "downloaded_on": file_times} - ), - ] + new_db = pd.DataFrame( + {"local_path": file_names, "downloaded_on": file_times} ) + # update the database + db = pd.concat([db, new_db]) db.reset_index(drop=True, inplace=True) # save the database db.to_csv(db_file, index=False) @@ -246,6 +230,41 @@ def _update_local_db(db_file, file_names, file_times): return db +def _write_file(file, data): + """Write data to a file. + + Parameters + ---------- + file : str + path to the file to write to + data : data fetched from ebrains + data to write to the file + """ + # check file type and write accordingly + if type(data) == nibabel.nifti1.Nifti1Image: + nibabel.save(data, file) + elif type(data) == nibabel.gifti.gifti.GiftiImage: + nibabel.save(data, file, mode="compat") + elif type(data) == pd.core.frame.DataFrame: + if file.endswith(".csv"): + data.to_csv(file, index=False) + elif file.endswith(".tsv"): + data.to_csv(file, index=False, sep="\t") + else: + raise ValueError( + f"File type not supported for {file}. Only .csv and .tsv are supported." + ) + elif type(data) == dict: + with open(file, "w") as f: + json.dump(data, f) + else: + raise ValueError( + f"Don't know how to save file {file}" f" of type {type(data)}" + ) + + return file + + def _download_file(src_file, dst_file, connector): """Download a file from ebrains. @@ -266,15 +285,11 @@ def _download_file(src_file, dst_file, connector): if not os.path.exists(dst_file): # load the file from ebrains src_data = connector.get(src_file) - if type(src_data) == nibabel.nifti1.Nifti1Image: - nibabel.save(src_data, dst_file) - elif type(src_data) == nibabel.gifti.gifti.GiftiImage: - nibabel.save(src_data, dst_file, mode="compat") - else: - return ValueError( - f"Don't know how to save file {src_file}" - f" of type {type(src_data)}" - ) + # make sure the directory exists + dst_file_dir = os.path.split(dst_file)[0] + os.makedirs(dst_file_dir, exist_ok=True) + # save the file locally + dst_file = _write_file(dst_file, src_data) return dst_file else: print(f"File {dst_file} already exists, skipping download.") @@ -282,7 +297,7 @@ def _download_file(src_file, dst_file, connector): return [] -def download_data(db, save_to=None, organise_by="session", metadata=METADATA): +def download_data(db, save_to=None): """Download the files in a (filtered) dataframe. Parameters @@ -293,9 +308,6 @@ def download_data(db, save_to=None, organise_by="session", metadata=METADATA): save_to : str, optional where to save the data, by default None, in which case the data is saved in a directory called "ibc_data" in the current working directory - organise_by : str, optional - whether to organise files under separate task or session folders, - by default "session", could be one of ["session", "task"] Returns ------- @@ -303,24 +315,19 @@ def download_data(db, save_to=None, organise_by="session", metadata=METADATA): dataframe with downloaded file names and times from the dataset """ # get data type from db - data_type = db["image_type"].unique()[0] + data_type = db["dataset"].unique()[0] # connect to ebrains dataset connector = _connect_ebrains(data_type) # get the file names as they are on ebrains - src_file_names = get_file_paths(db) + src_file_names, dst_file_names = get_file_paths(db) # set the save directory save_to = _create_root_dir(save_to) # track downloaded file names and times local_db_file = os.path.join(save_to, f"downloaded_{data_type}.csv") # download the files - for src_file in tqdm(src_file_names): - # construct the directory structure as required by the user - # either by session or by task - dst_file_head, dst_file_base = _construct_dir( - save_to, src_file, organise_by - ) - # file path to save the data - dst_file = os.path.join(dst_file_head, dst_file_base) + for src_file, dst_file in tqdm(zip(src_file_names, dst_file_names)): + # final file path to save the data + dst_file = os.path.join(save_to, dst_file) file_name = _download_file(src_file, dst_file, connector) file_time = datetime.now() local_db = _update_local_db(local_db_file, file_name, file_time)