├── .gitignore ├── README.md ├── bdds ├── __init__.py ├── bdds.py ├── decodeddnn.py ├── download.py ├── downloadall.py ├── fmri.py └── god.py ├── demo.ipynb ├── demo_DecodedDNN_Figure2.ipynb ├── demo_handshape.ipynb └── setup.py /.gitignore: -------------------------------------------------------------------------------- 1 | data 2 | 3 | *.pyc 4 | __pycache__ 5 | .ipynb_checkpoints -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Brain decoding datasets 2 | 3 | This Python package provides interfaces to datasets published from Kamitani Lab, Kyoto Univ and ATR. 4 | 5 | ## Installation 6 | 7 | ``` shellsession 8 | $ pip install git+https://github.com/KamitaniLab/brain-decoding-datasets.git 9 | ``` 10 | 11 | ## Usage 12 | 13 | ### Download all data files 14 | 15 | ``` shellsession 16 | $ python -m bdds.downloadall [--output ] 17 | ``` 18 | 19 | Example: 20 | 21 | ``` shellsession 22 | $ python -m bdds.downloadall handshape --output data/handshape 23 | $ python -m bdds.downloadall god --output data/god 24 | $ python -m bdds.downloadall decodeddnn --output data/decodeddnn 25 | ``` 26 | 27 | ### Extract data 28 | 29 | ``` python 30 | import bdds 31 | 32 | 33 | # Hand shape decoding dataset 34 | dataset_handshape = bdds.HandShapeDecoding('data/handshape') 35 | data_handshape_s1 = dataset_handshape.get(mode='fmri', subject='S1') # Return fMRI data as a bdpy dataset 36 | 37 | # GOD fMRI dataset 38 | dataset_god = bdds.GenericObjectDecoding('data/god') 39 | data_god_s1 = dataset_god.get(mode='fmri', subject='Subject1') # Return fMRI data as a bdpy dataset 40 | 41 | # Decoded DNN features 42 | dataset_dnn = bdds.DecodedDNN('data/decodeddnn') 43 | decoded_feature = dataset_dnn.get(mode='decoded', subject='S1', net='AlexNet', layer='fc8') # Return features as (a list of) numpy arrays. 44 | ``` 45 | 46 | If data files are missing in your local filesystem, the dataset instance asks you whether to download the files from online repositories or not. 47 | 48 | Example: 49 | 50 | ``` python 51 | >>> import bdds 52 | >>> dataset_handshape = bdds.HandShapeDecoding('data/handshape') 53 | >>> data_handshape_s1 = dataset_handshape.get(mode='fmri', subject='S1') 54 | Data file is missing. Download? (y/[n])y 55 | Downloading https://ndownloader.figshare.com/files/12227786 56 | Saved data/handshape/S1.h5 57 | >>> 58 | ``` 59 | 60 | See [demo.ipynb](demo.ipynb) for more details. 61 | 62 | ### Auto-downloading data files 63 | 64 | When the dataset instance is initialized with with `auto_download=True` option, it downloads automatically missing files from data repositories. 65 | 66 | Example: 67 | 68 | ``` python 69 | >>> import bdds 70 | >>> dataset_handshape = bdds.HandShapeDecoding('data/handshape', auto_download=True) 71 | >>> data_handshape_s1 = dataset_handshape.get(mode='fmri', subject='S1') 72 | Downloading https://ndownloader.figshare.com/files/12227786 73 | Saved data/handshape/S1.h5 74 | >>> 75 | ``` 76 | 77 | ## Supported datasets 78 | 79 | - [Generic object decoding](https://github.com/KamitaniLab/GenericObjectDecoding) ('god') #fMRI #DNN 80 | - [Horikawa & Kamitani (2017) Generic decoding of seen and imagined objects using hierarchical visual features. Nat Commun.](https://www.nature.com/articles/ncomms15037) 81 | - DNN features decoded from human brain activity ('decodeddnn') #fMRI #DNN 82 | - [Horikawa et al. (2018) Characterization of deep neural network features by decodability from human brain activity. bioRxiv.](https://www.biorxiv.org/content/early/2018/09/23/424168) 83 | - [Hand shape decoding dataset](https://figshare.com/articles/Hand_shape_decoding_rock_paper_scissors_/6698780) ('handshape') #fMRI 84 | -------------------------------------------------------------------------------- /bdds/__init__.py: -------------------------------------------------------------------------------- 1 | from .decodeddnn import * # Decoded DNN features from fMRI data 2 | from .god import * # Generic object decoding dataset 3 | from .fmri import * # fMRI datasets 4 | -------------------------------------------------------------------------------- /bdds/bdds.py: -------------------------------------------------------------------------------- 1 | '''Brain decoding dataset.''' 2 | 3 | 4 | from abc import ABCMeta, abstractmethod 5 | import os 6 | import sys 7 | 8 | from .download import download_file 9 | 10 | class DatasetBase(object): 11 | '''Dataset class. 12 | 13 | Attributes 14 | ---------- 15 | datastore : str, optional 16 | Path to data store directory 17 | verbose : bool, optional 18 | Output verbose messages or not 19 | ''' 20 | 21 | __metaclass__ = ABCMeta 22 | 23 | def __init__(self, datastore=None, verbose=False, default_dir='', auto_download=False): 24 | self._verbose = verbose 25 | 26 | if datastore is None: 27 | self._datastore = os.path.join(os.environ['HOME'], '.bdds', default_dir) 28 | else: 29 | self._datastore = datastore 30 | 31 | if not os.path.exists(self._datastore): 32 | os.makedirs(self._datastore) 33 | 34 | self.__auto_download = auto_download 35 | 36 | if self._verbose: 37 | print('Initialize dataset.') 38 | print('Data store: %s' % self._datastore) 39 | 40 | # Public APIs 41 | 42 | def get(self, **kargs): 43 | '''Returns specified data.''' 44 | 45 | # Return value settings 46 | return_dict = kargs['return_dict'] if 'return_dict' in kargs else False 47 | force_list = kargs['force_list'] if 'force_list' in kargs else False 48 | if 'return_dict' in kargs: del(kargs['return_dict']) 49 | if 'force_list' in kargs: del(kargs['force_list']) 50 | 51 | if self._verbose: 52 | if return_dict: print('return_dict enabled.') 53 | if force_list: print('force_list enabled.') 54 | 55 | # Get data 56 | collection = self._get_files(**kargs) 57 | collection = self.__load_data(collection) 58 | 59 | # Postprocessing 60 | if return_dict: 61 | output = collection 62 | else: 63 | output = [item['data'] for item in collection] 64 | 65 | if len(output) == 1 and not force_list: 66 | output = output[0] 67 | 68 | return output 69 | 70 | def download_all(self): 71 | '''Download all files.''' 72 | 73 | for fname in self._remote_files: 74 | fpath = os.path.join(self._datastore, fname) 75 | if not os.path.exists(fpath): 76 | self._download_file(fname) 77 | 78 | # Private methods 79 | 80 | def __load_data(self, collection): 81 | '''Load data. 82 | 83 | `__load_data` tries to load data from local storage. If the file is 84 | missing, it downloads the file from remote repository. 85 | ''' 86 | 87 | for item in collection: 88 | fpath = os.path.join(self._datastore, item['file']) 89 | 90 | if not os.path.exists(fpath): 91 | 92 | if not self.__auto_download: 93 | ans = raw_input('Data file is missing. Download? (y/[n])') 94 | if ans.upper() == 'N' or ans.upper() == 'NO': 95 | print('Aborting the program.') 96 | sys.exit() 97 | 98 | if self._verbose: print('Downloading file %s' % item['file']) 99 | self._download_file(item['file']) 100 | 101 | if self._verbose: print('Loading %s' % fpath) 102 | dat = self._load_file(fpath) 103 | item['data'] = dat 104 | 105 | return collection 106 | 107 | # Abstract methods 108 | 109 | @abstractmethod 110 | def _get_files(self, **kargs): 111 | pass 112 | 113 | @abstractmethod 114 | def _load_file(self, fpath): 115 | pass 116 | 117 | @abstractmethod 118 | def _download_file(self, fname): 119 | pass 120 | -------------------------------------------------------------------------------- /bdds/decodeddnn.py: -------------------------------------------------------------------------------- 1 | '''Decoded DNN features.''' 2 | 3 | __all__ = ['DecodedDNN'] 4 | 5 | import os 6 | import warnings 7 | from itertools import product 8 | from collections import OrderedDict 9 | import zipfile 10 | import shutil 11 | import datetime 12 | 13 | import numpy as np 14 | import scipy.io as sio 15 | import h5py 16 | 17 | from .bdds import DatasetBase 18 | from .download import download_file 19 | 20 | 21 | class DecodedDNN(DatasetBase): 22 | '''Decoded DNN feature dataset class. 23 | 24 | Attributes 25 | ---------- 26 | datastore : str, optional 27 | Path to data store directory 28 | verbose : bool, optional 29 | Output verbose messages or not 30 | ''' 31 | 32 | __subjects = ['S1', 'S2', 'S3', 'S4', 'S5', 'Averaged'] 33 | __nets = {'AlexNet' : ['conv1', 'conv2', 'conv3', 'conv4', 'conv5', 34 | 'fc6', 'fc7', 'fc8'], 35 | 'VGG19' : ['conv1_1', 'conv1_2', 'conv2_1', 'conv2_2', 'conv3_1', 'conv3_2', 'conv3_3', 'conv3_4', 'conv4_1', 'conv4_2', 'conv4_3', 'conv4_4', 'conv5_1', 'conv5_2', 'conv5_3', 'conv5_4', 36 | 'pool1', 'pool2', 'pool3', 'pool4', 'pool5']} 37 | __images = ['n01443537_22563', 'n01621127_19020', 'n01677366_18182', 'n01846331_17038', 'n01858441_11077', 38 | 'n01943899_24131', 'n01976957_13223', 'n02071294_46212', 'n02128385_20264', 'n02139199_10398', 39 | 'n02190790_15121', 'n02274259_24319', 'n02416519_12793', 'n02437136_12836', 'n02437971_5013', 40 | 'n02690373_7713', 'n02797295_15411', 'n02824058_18729', 'n02882301_14188', 'n02916179_24850', 41 | 'n02950256_22949', 'n02951358_23759', 'n03064758_38750', 'n03122295_31279', 'n03124170_13920', 42 | 'n03237416_58334', 'n03272010_11001', 'n03345837_12501', 'n03379051_8496', 'n03452741_24622', 43 | 'n03455488_28622', 'n03482252_22530', 'n03495258_9895', 'n03584254_5040', 'n03626115_19498', 44 | 'n03710193_22225', 'n03716966_28524', 'n03761084_43533', 'n03767745_109', 'n03941684_21672', 45 | 'n03954393_10038', 'n04210120_9062', 'n04252077_10859', 'n04254777_16338', 'n04297750_25624', 46 | 'n04387400_16693', 'n04507155_21299', 'n04533802_19479', 'n04554684_53399', 'n04572121_3262'] 47 | __modes = ['decoded', 'accuracy', 'rank', 'true'] 48 | 49 | __remote_files = {'decodedDNN-accuracy-AlexNet-conv1.zip': 'https://ndownloader.figshare.com/files/13077233', 50 | 'decodedDNN-accuracy-AlexNet-conv2.zip': 'https://ndownloader.figshare.com/files/13077236', 51 | 'decodedDNN-accuracy-AlexNet-conv3.zip': 'https://ndownloader.figshare.com/files/13077239', 52 | 'decodedDNN-accuracy-AlexNet-conv4.zip': 'https://ndownloader.figshare.com/files/13077242', 53 | 'decodedDNN-accuracy-AlexNet-conv5.zip': 'https://ndownloader.figshare.com/files/13077245', 54 | 'decodedDNN-accuracy-AlexNet-fc6.zip': 'https://ndownloader.figshare.com/files/13077248', 55 | 'decodedDNN-accuracy-AlexNet-fc7.zip': 'https://ndownloader.figshare.com/files/13077251', 56 | 'decodedDNN-accuracy-AlexNet-fc8.zip': 'https://ndownloader.figshare.com/files/13077254', 57 | 'decodedDNN-accuracy-VGG19-conv1_1.zip': 'https://ndownloader.figshare.com/files/13077314', 58 | 'decodedDNN-accuracy-VGG19-conv1_2.zip': 'https://ndownloader.figshare.com/files/13077317', 59 | 'decodedDNN-accuracy-VGG19-conv2_1.zip': 'https://ndownloader.figshare.com/files/13077320', 60 | 'decodedDNN-accuracy-VGG19-conv2_2.zip': 'https://ndownloader.figshare.com/files/13077323', 61 | 'decodedDNN-accuracy-VGG19-conv3_1.zip': 'https://ndownloader.figshare.com/files/13077326', 62 | 'decodedDNN-accuracy-VGG19-conv3_2.zip': 'https://ndownloader.figshare.com/files/13077329', 63 | 'decodedDNN-accuracy-VGG19-conv3_3.zip': 'https://ndownloader.figshare.com/files/13077332', 64 | 'decodedDNN-accuracy-VGG19-conv3_4.zip': 'https://ndownloader.figshare.com/files/13077335', 65 | 'decodedDNN-accuracy-VGG19-conv4_1.zip': 'https://ndownloader.figshare.com/files/13077338', 66 | 'decodedDNN-accuracy-VGG19-conv4_2.zip': 'https://ndownloader.figshare.com/files/13077284', 67 | 'decodedDNN-accuracy-VGG19-conv4_3.zip': 'https://ndownloader.figshare.com/files/13077287', 68 | 'decodedDNN-accuracy-VGG19-conv4_4.zip': 'https://ndownloader.figshare.com/files/13077290', 69 | 'decodedDNN-accuracy-VGG19-conv5_1.zip': 'https://ndownloader.figshare.com/files/13077293', 70 | 'decodedDNN-accuracy-VGG19-conv5_2.zip': 'https://ndownloader.figshare.com/files/13077296', 71 | 'decodedDNN-accuracy-VGG19-conv5_3.zip': 'https://ndownloader.figshare.com/files/13077299', 72 | 'decodedDNN-accuracy-VGG19-conv5_4.zip': 'https://ndownloader.figshare.com/files/13077302', 73 | 'decodedDNN-accuracy-VGG19-fc6.zip': 'https://ndownloader.figshare.com/files/13077305', 74 | 'decodedDNN-accuracy-VGG19-fc7.zip': 'https://ndownloader.figshare.com/files/13077308', 75 | 'decodedDNN-accuracy-VGG19-fc8.zip': 'https://ndownloader.figshare.com/files/13077311', 76 | 'decodedDNN-decoded-AlexNet-conv1.zip': 'https://ndownloader.figshare.com/files/13077257', 77 | 'decodedDNN-decoded-AlexNet-conv2.zip': 'https://ndownloader.figshare.com/files/13077260', 78 | 'decodedDNN-decoded-AlexNet-conv3.zip': 'https://ndownloader.figshare.com/files/13077263', 79 | 'decodedDNN-decoded-AlexNet-conv4.zip': 'https://ndownloader.figshare.com/files/13077266', 80 | 'decodedDNN-decoded-AlexNet-conv5.zip': 'https://ndownloader.figshare.com/files/13077173', 81 | 'decodedDNN-decoded-AlexNet-fc6.zip': 'https://ndownloader.figshare.com/files/13077176', 82 | 'decodedDNN-decoded-AlexNet-fc7.zip': 'https://ndownloader.figshare.com/files/13077179', 83 | 'decodedDNN-decoded-AlexNet-fc8.zip': 'https://ndownloader.figshare.com/files/13077182', 84 | 'decodedDNN-decoded-VGG19-conv1_1.zip': 'https://ndownloader.figshare.com/files/13077926', 85 | 'decodedDNN-decoded-VGG19-conv1_2.zip': 'https://ndownloader.figshare.com/files/13077962', 86 | 'decodedDNN-decoded-VGG19-conv2_1.zip': 'https://ndownloader.figshare.com/files/13077986', 87 | 'decodedDNN-decoded-VGG19-conv2_2.zip': 'https://ndownloader.figshare.com/files/13111850', 88 | 'decodedDNN-decoded-VGG19-conv3_1.zip': 'https://ndownloader.figshare.com/files/13078008', 89 | 'decodedDNN-decoded-VGG19-conv3_2.zip': 'https://ndownloader.figshare.com/files/13078023', 90 | 'decodedDNN-decoded-VGG19-conv3_3.zip': 'https://ndownloader.figshare.com/files/13078080', 91 | 'decodedDNN-decoded-VGG19-conv3_4.zip': 'https://ndownloader.figshare.com/files/13077653', 92 | 'decodedDNN-decoded-VGG19-conv4_1.zip': 'https://ndownloader.figshare.com/files/13077674', 93 | 'decodedDNN-decoded-VGG19-conv4_2.zip': 'https://ndownloader.figshare.com/files/13077704', 94 | 'decodedDNN-decoded-VGG19-conv4_3.zip': 'https://ndownloader.figshare.com/files/13077728', 95 | 'decodedDNN-decoded-VGG19-conv4_4.zip': 'https://ndownloader.figshare.com/files/13077731', 96 | 'decodedDNN-decoded-VGG19-conv5_1.zip': 'https://ndownloader.figshare.com/files/13077734', 97 | 'decodedDNN-decoded-VGG19-conv5_2.zip': 'https://ndownloader.figshare.com/files/13077737', 98 | 'decodedDNN-decoded-VGG19-conv5_3.zip': 'https://ndownloader.figshare.com/files/13077740', 99 | 'decodedDNN-decoded-VGG19-conv5_4.zip': 'https://ndownloader.figshare.com/files/13077752', 100 | 'decodedDNN-decoded-VGG19-fc6.zip': 'https://ndownloader.figshare.com/files/13077755', 101 | 'decodedDNN-decoded-VGG19-fc7.zip': 'https://ndownloader.figshare.com/files/13077758', 102 | 'decodedDNN-decoded-VGG19-fc8.zip': 'https://ndownloader.figshare.com/files/13077761', 103 | 'decodedDNN-rank-AlexNet-conv1.zip': 'https://ndownloader.figshare.com/files/13077185', 104 | 'decodedDNN-rank-AlexNet-conv2.zip': 'https://ndownloader.figshare.com/files/13077188', 105 | 'decodedDNN-rank-AlexNet-conv3.zip': 'https://ndownloader.figshare.com/files/13077191', 106 | 'decodedDNN-rank-AlexNet-conv4.zip': 'https://ndownloader.figshare.com/files/13077194', 107 | 'decodedDNN-rank-AlexNet-conv5.zip': 'https://ndownloader.figshare.com/files/13077197', 108 | 'decodedDNN-rank-AlexNet-fc6.zip': 'https://ndownloader.figshare.com/files/13077200', 109 | 'decodedDNN-rank-AlexNet-fc7.zip': 'https://ndownloader.figshare.com/files/13077203', 110 | 'decodedDNN-rank-AlexNet-fc8.zip': 'https://ndownloader.figshare.com/files/13077206', 111 | 'decodedDNN-rank-VGG19-conv1_1.zip': 'https://ndownloader.figshare.com/files/13083275', 112 | 'decodedDNN-rank-VGG19-conv1_2.zip': 'https://ndownloader.figshare.com/files/13083278', 113 | 'decodedDNN-rank-VGG19-conv2_1.zip': 'https://ndownloader.figshare.com/files/13083281', 114 | 'decodedDNN-rank-VGG19-conv2_2.zip': 'https://ndownloader.figshare.com/files/13083284', 115 | 'decodedDNN-rank-VGG19-conv3_1.zip': 'https://ndownloader.figshare.com/files/13083287', 116 | 'decodedDNN-rank-VGG19-conv3_2.zip': 'https://ndownloader.figshare.com/files/13083152', 117 | 'decodedDNN-rank-VGG19-conv3_3.zip': 'https://ndownloader.figshare.com/files/13083155', 118 | 'decodedDNN-rank-VGG19-conv3_4.zip': 'https://ndownloader.figshare.com/files/13083158', 119 | 'decodedDNN-rank-VGG19-conv4_1.zip': 'https://ndownloader.figshare.com/files/13083161', 120 | 'decodedDNN-rank-VGG19-conv4_2.zip': 'https://ndownloader.figshare.com/files/13083164', 121 | 'decodedDNN-rank-VGG19-conv4_3.zip': 'https://ndownloader.figshare.com/files/13083167', 122 | 'decodedDNN-rank-VGG19-conv4_4.zip': 'https://ndownloader.figshare.com/files/13083170', 123 | 'decodedDNN-rank-VGG19-conv5_1.zip': 'https://ndownloader.figshare.com/files/13083173', 124 | 'decodedDNN-rank-VGG19-conv5_2.zip': 'https://ndownloader.figshare.com/files/13083176', 125 | 'decodedDNN-rank-VGG19-conv5_3.zip': 'https://ndownloader.figshare.com/files/13083179', 126 | 'decodedDNN-rank-VGG19-conv5_4.zip': 'https://ndownloader.figshare.com/files/13083182', 127 | 'decodedDNN-rank-VGG19-fc6.zip': 'https://ndownloader.figshare.com/files/13083185', 128 | 'decodedDNN-rank-VGG19-fc7.zip': 'https://ndownloader.figshare.com/files/13083188', 129 | 'decodedDNN-rank-VGG19-fc8.zip': 'https://ndownloader.figshare.com/files/13083191', 130 | 'decodedDNN-true-AlexNet-conv1.zip': 'https://ndownloader.figshare.com/files/13110746', 131 | 'decodedDNN-true-AlexNet-conv2.zip': 'https://ndownloader.figshare.com/files/13111937', 132 | 'decodedDNN-true-AlexNet-conv3.zip': 'https://ndownloader.figshare.com/files/13110752', 133 | 'decodedDNN-true-AlexNet-conv4.zip': 'https://ndownloader.figshare.com/files/13110731', 134 | 'decodedDNN-true-AlexNet-conv5.zip': 'https://ndownloader.figshare.com/files/13110734', 135 | 'decodedDNN-true-AlexNet-fc6.zip': 'https://ndownloader.figshare.com/files/13110740', 136 | 'decodedDNN-true-AlexNet-fc7.zip': 'https://ndownloader.figshare.com/files/13110743', 137 | 'decodedDNN-true-AlexNet-fc8.zip': 'https://ndownloader.figshare.com/files/13110737', 138 | 'decodedDNN-true-VGG19-conv1_1.zip': 'https://ndownloader.figshare.com/files/13110797', 139 | 'decodedDNN-true-VGG19-conv1_2.zip': 'https://ndownloader.figshare.com/files/13110800', 140 | 'decodedDNN-true-VGG19-conv2_1.zip': 'https://ndownloader.figshare.com/files/13110803', 141 | 'decodedDNN-true-VGG19-conv2_2.zip': 'https://ndownloader.figshare.com/files/13110806', 142 | 'decodedDNN-true-VGG19-conv3_1.zip': 'https://ndownloader.figshare.com/files/13110812', 143 | 'decodedDNN-true-VGG19-conv3_2.zip': 'https://ndownloader.figshare.com/files/13110815', 144 | 'decodedDNN-true-VGG19-conv3_3.zip': 'https://ndownloader.figshare.com/files/13110755', 145 | 'decodedDNN-true-VGG19-conv3_4.zip': 'https://ndownloader.figshare.com/files/13110761', 146 | 'decodedDNN-true-VGG19-conv4_1.zip': 'https://ndownloader.figshare.com/files/13110764', 147 | 'decodedDNN-true-VGG19-conv4_2.zip': 'https://ndownloader.figshare.com/files/13110767', 148 | 'decodedDNN-true-VGG19-conv4_3.zip': 'https://ndownloader.figshare.com/files/13110770', 149 | 'decodedDNN-true-VGG19-conv4_4.zip': 'https://ndownloader.figshare.com/files/13110773', 150 | 'decodedDNN-true-VGG19-conv5_1.zip': 'https://ndownloader.figshare.com/files/13110776', 151 | 'decodedDNN-true-VGG19-conv5_2.zip': 'https://ndownloader.figshare.com/files/13110779', 152 | 'decodedDNN-true-VGG19-conv5_3.zip': 'https://ndownloader.figshare.com/files/13110782', 153 | 'decodedDNN-true-VGG19-conv5_4.zip': 'https://ndownloader.figshare.com/files/13110785', 154 | 'decodedDNN-true-VGG19-fc6.zip': 'https://ndownloader.figshare.com/files/13110788', 155 | 'decodedDNN-true-VGG19-fc7.zip': 'https://ndownloader.figshare.com/files/13110791', 156 | 'decodedDNN-true-VGG19-fc8.zip': 'https://ndownloader.figshare.com/files/13110794'} 157 | 158 | @property 159 | def _remote_files(self): 160 | return self.__remote_files 161 | 162 | def __init__(self, datastore=None, verbose=False, auto_download=False): 163 | super(DecodedDNN, self).__init__(datastore=datastore, verbose=verbose, auto_download=auto_download, default_dir='decodeddnn') 164 | 165 | def _get_files(self, mode=None, subject=None, net=None, layer=None, image=None): 166 | 167 | # Input processing 168 | if mode is None: raise RuntimeError('`mode` is required.') 169 | 170 | if subject is None: subject = DecodedDNN.__subjects 171 | subject = self.__listize(subject) 172 | 173 | if mode == 'true': 174 | subject = [None] 175 | 176 | if net is None: net = list(DecodedDNN.__nets.keys()) 177 | net = self.__listize(net) 178 | 179 | net_dict = {} 180 | for nt in net: 181 | layer_tmp = DecodedDNN.__nets[nt] if layer is None else layer 182 | layer_tmp = self.__listize(layer_tmp) 183 | net_dict.update({nt : layer_tmp}) 184 | 185 | if mode == 'decoded' or mode == 'true': 186 | if image is None: image = DecodedDNN.__images 187 | image = self.__listize(image) 188 | else: 189 | if image is not None: warnings.warn('`image` is only effective for `decoded` mode.') 190 | image = [None] 191 | 192 | # Disp info 193 | if self._verbose: 194 | print('Mode : %s' % mode) 195 | print('Subject : %s' % subject) 196 | print('Net : %s' % net) 197 | for n in net_dict: print('Layers (%s) : %s' % (n, net_dict[n])) 198 | if image is not None: print('Image : %s' % image) 199 | 200 | # TODO: add args value check 201 | 202 | # Get data files 203 | collection = [] 204 | 205 | for nt in net: 206 | lys = net_dict[nt] 207 | for sb, ly, im in product(subject, lys, image): 208 | fpath = self.__get_filepath(mode=mode, subject=sb, net=nt, layer=ly, image=im) 209 | if self._verbose: print('Data file: %s' % fpath) 210 | collection.append({'identifier': {'mode': mode, 211 | 'subject': sb, 212 | 'net': nt, 213 | 'layer': ly, 214 | 'image': im}, 215 | 'file': fpath, 216 | 'data': None}) 217 | 218 | return collection 219 | 220 | def __get_filepath(self, mode=None, subject=None, net=None, layer=None, image=None): 221 | if mode == 'decoded': 222 | fpath = os.path.join(mode, net, layer, subject, '%s-%s-%s-%s-%s.mat' % (mode, net, layer, subject, image)) 223 | elif mode == 'accuracy': 224 | fpath = os.path.join(mode, net, layer, '%s-%s-%s-%s.mat' % (mode, net, layer, subject)) 225 | elif mode == 'rank': 226 | fpath = os.path.join(mode, net, layer, '%s-%s-%s-%s.mat' % (mode, net, layer, subject)) 227 | elif mode == 'true': 228 | fpath = os.path.join(mode, net, layer, '%s-%s-%s-%s.mat' % (mode, net, layer, image)) 229 | else: 230 | raise ValueError('Unknown mode: %s' % mode) 231 | 232 | return fpath 233 | 234 | def _load_file(self, fpath): 235 | try: 236 | d = sio.loadmat(fpath) 237 | if 'feat' in d: return d['feat'] 238 | if 'accuracy' in d: return d['accuracy'] 239 | if 'rank' in d: return d['rank'] 240 | except: 241 | d = h5py.File(fpath) 242 | if 'feat' in d: return d['feat'].value.transpose(2, 1, 0) 243 | if 'accuracy' in d: return d['accuracy'].value.transpose(2, 1, 0) 244 | if 'rank' in d: return d['rank'].value.transpose(2, 1, 0) 245 | 246 | raise RuntimeError('Invalid data: %s' % fpath) 247 | 248 | def _download_file(self, fname): 249 | if fname in DecodedDNN.__remote_files: 250 | remote_file = fname 251 | else: 252 | fstr = fname.split('/') 253 | remote_file = 'decodedDNN-%s-%s-%s.zip' % (fstr[0], fstr[1], fstr[2]) 254 | 255 | url = DecodedDNN.__remote_files[remote_file] 256 | 257 | private_link = '76f1e5e10fdfacc5ec12' 258 | url = '%s?private_link=%s' % (url, private_link) 259 | 260 | t = datetime.datetime.now().strftime('%Y%m%d%H%M%S') 261 | tempdir = os.path.join(self._datastore, '.temp-%s' % t) 262 | tempfile = os.path.join(self._datastore, remote_file) 263 | 264 | download_file(url, tempfile) 265 | 266 | # Unzip the file 267 | with zipfile.ZipFile(tempfile, 'r') as f: 268 | f.extractall(tempdir) 269 | 270 | # Move files 271 | for ds, ss, fs in os.walk(tempdir): 272 | if not fs: continue 273 | for f in fs: 274 | src = os.path.join(ds, f) 275 | trg = os.path.join(self._datastore, 276 | src.split('/decodedDNN/')[1]) 277 | trg_dir = os.path.dirname(trg) 278 | if not os.path.exists(trg_dir): os.makedirs(trg_dir) 279 | shutil.move(src, trg) 280 | 281 | # Remove temp files 282 | os.remove(tempfile) 283 | shutil.rmtree(tempdir) 284 | 285 | return np.empty([]) 286 | 287 | def __listize(self, x): 288 | return x if isinstance(x, list) else [x] 289 | -------------------------------------------------------------------------------- /bdds/download.py: -------------------------------------------------------------------------------- 1 | '''Downloader.''' 2 | 3 | 4 | __all__ = ['download_file'] 5 | 6 | 7 | import os 8 | import urllib 9 | 10 | 11 | def download_file(url, save_path): 12 | '''Download a file from `url`.''' 13 | 14 | print('Downloading %s' % url) 15 | urllib.urlretrieve(url, save_path) 16 | print('Saved %s' % save_path) 17 | -------------------------------------------------------------------------------- /bdds/downloadall.py: -------------------------------------------------------------------------------- 1 | '''Downloading script. 2 | 3 | Usage 4 | ----- 5 | 6 | $ python -m bddpy.downloadall handshape 7 | ''' 8 | 9 | 10 | import os 11 | import sys 12 | from argparse import ArgumentParser 13 | 14 | # bdds 15 | from .decodeddnn import * # Decoded DNN features from fMRI data 16 | from .god import * # Generic object decoding dataset 17 | from .fmri import * # fMRI datasets 18 | 19 | 20 | # Entry point ################################################################# 21 | 22 | def main(): 23 | # Command line arguments 24 | argparse = ArgumentParser(description=__doc__) 25 | argparse.add_argument('dataset', type=str, help='Dataset', default=None) 26 | argparse.add_argument('--output', type=str, help='Output directory', default=None) 27 | args = argparse.parse_args() 28 | 29 | # Dataset tables 30 | dataset_table = {'handshape': HandShapeDecoding, 31 | 'god': GenericObjectDecoding, 32 | 'decodeddnn': DecodedDNN} 33 | 34 | # Init dataset instrance 35 | ds = init_dataset(dataset_table[args.dataset], args.output) 36 | 37 | # Download all files 38 | ds.download_all() 39 | 40 | 41 | def init_dataset(dataset, datastore): 42 | return dataset(datastore=datastore, auto_download=True, verbose=True) 43 | 44 | 45 | if __name__ == '__main__': 46 | main() 47 | -------------------------------------------------------------------------------- /bdds/fmri.py: -------------------------------------------------------------------------------- 1 | '''fMRI datasets.''' 2 | 3 | 4 | __all__ = ['HandShapeDecoding'] 5 | 6 | 7 | import os 8 | 9 | import bdpy 10 | 11 | from .bdds import DatasetBase 12 | from .download import download_file 13 | 14 | 15 | class HandShapeDecoding(DatasetBase): 16 | '''Hand shape decoding dataset class. 17 | 18 | Attributes 19 | ---------- 20 | datastore : str, optional 21 | Path to data store directory 22 | verbose : bool, optional 23 | Output verbose messages or not 24 | ''' 25 | 26 | __modes = ['fmri'] 27 | __subjects = ['S1'] 28 | 29 | __remote_files = {'S1.h5': 'https://ndownloader.figshare.com/files/12227786'} 30 | 31 | @property 32 | def _remote_files(self): 33 | return self.__remote_files 34 | 35 | def __init__(self, datastore=None, verbose=False, auto_download=False): 36 | super(HandShapeDecoding, self).__init__(datastore=datastore, verbose=verbose, auto_download=auto_download, default_dir='handshape') 37 | 38 | def _get_files(self, mode='fmri', subject='S1'): 39 | 40 | if subject is None: subject = HandShapeDecoding.__subjects 41 | subject = self.__listize(subject) 42 | 43 | # Disp info 44 | if self._verbose: 45 | print('Mode : %s' % mode) 46 | print('Subject : %s' % subject) 47 | 48 | # TODO: add args value check 49 | 50 | # Get data files 51 | collection = [] 52 | 53 | for sbj in subject: 54 | fpath = sbj + '.h5' 55 | collection.append({'identifier': {'mode': mode, 56 | 'subject': sbj}, 57 | 'file': fpath, 58 | 'data': None}) 59 | 60 | return collection 61 | 62 | def _load_file(self, fpath): 63 | try: 64 | return bdpy.BData(fpath) 65 | except: 66 | raise RuntimeError('Invalid data: %s' % fpath) 67 | 68 | def _download_file(self, fname): 69 | url = HandShapeDecoding.__remote_files[fname] 70 | 71 | download_file(url, os.path.join(self._datastore, fname)) 72 | 73 | return None 74 | 75 | def __listize(self, x): 76 | return x if isinstance(x, list) else [x] 77 | -------------------------------------------------------------------------------- /bdds/god.py: -------------------------------------------------------------------------------- 1 | '''Generic object decoding dataset.''' 2 | 3 | 4 | __all__ = ['GenericObjectDecoding'] 5 | 6 | 7 | import os 8 | import warnings 9 | from itertools import product 10 | from collections import OrderedDict 11 | import zipfile 12 | import shutil 13 | import datetime 14 | 15 | import numpy as np 16 | import scipy.io as sio 17 | import h5py 18 | 19 | import bdpy 20 | 21 | from .bdds import DatasetBase 22 | from .download import download_file 23 | 24 | 25 | class GenericObjectDecoding(DatasetBase): 26 | '''Generic object decoding dataset class. 27 | 28 | Attributes 29 | ---------- 30 | datastore : str, optional 31 | Path to data store directory 32 | verbose : bool, optional 33 | Output verbose messages or not 34 | ''' 35 | 36 | __modes = ['fmri', 'image_features'] 37 | __subjects = ['Subject1', 38 | 'Subject2', 39 | 'Subject3', 40 | 'Subject4', 41 | 'Subject5'] 42 | 43 | __remote_files = {'Subject1.mat': 'https://s3-eu-west-1.amazonaws.com/pfigshare-u-files/13663487/Subject1.mat', 44 | 'Subject2.mat': 'https://s3-eu-west-1.amazonaws.com/pfigshare-u-files/13663490/Subject2.mat', 45 | 'Subject3.mat': 'https://s3-eu-west-1.amazonaws.com/pfigshare-u-files/13663493/Subject3.mat', 46 | 'Subject4.mat': 'https://s3-eu-west-1.amazonaws.com/pfigshare-u-files/13663496/Subject4.mat', 47 | 'Subject5.mat': 'https://s3-eu-west-1.amazonaws.com/pfigshare-u-files/13663499/Subject5.mat', 48 | 'ImageFeatures.h5': 'http://brainliner.jp/download/1332/downloadDataFile'} 49 | 50 | @property 51 | def _remote_files(self): 52 | return self.__remote_files 53 | 54 | def __init__(self, datastore=None, verbose=False, auto_download=False): 55 | super(GenericObjectDecoding, self).__init__(datastore=datastore, verbose=verbose, auto_download=auto_download, default_dir='god') 56 | 57 | def _get_files(self, mode=None, subject=None): 58 | 59 | # Input processing 60 | if mode is None: raise RuntimeError('`mode` is required.') 61 | 62 | if subject is None: subject = GenericObjectDecoding.__subjects 63 | subject = self.__listize(subject) 64 | 65 | # Disp info 66 | if self._verbose: 67 | print('Mode : %s' % mode) 68 | print('Subject : %s' % subject) 69 | 70 | # TODO: add args value check 71 | 72 | # Get data files 73 | collection = [] 74 | 75 | if mode == 'image_features': 76 | fpath = 'ImageFeatures.h5' 77 | collection.append({'identifier': {'mode': mode, 78 | 'subject': None}, 79 | 'file': fpath, 80 | 'data': None}) 81 | else: 82 | for sbj in subject: 83 | fpath = sbj + '.mat' 84 | collection.append({'identifier': {'mode': mode, 85 | 'subject': sbj}, 86 | 'file': fpath, 87 | 'data': None}) 88 | 89 | return collection 90 | 91 | def _load_file(self, fpath): 92 | try: 93 | return bdpy.BData(fpath, 'HDF5') 94 | except: 95 | raise RuntimeError('Invalid data: %s' % fpath) 96 | 97 | def _download_file(self, fname): 98 | url = GenericObjectDecoding.__remote_files[fname] 99 | 100 | download_file(url, os.path.join(self._datastore, fname)) 101 | 102 | return None 103 | 104 | def __listize(self, x): 105 | return x if isinstance(x, list) else [x] 106 | -------------------------------------------------------------------------------- /demo.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Brain-decoding-datasets demo" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": null, 13 | "metadata": { 14 | "collapsed": true 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "import bdds" 19 | ] 20 | }, 21 | { 22 | "cell_type": "markdown", 23 | "metadata": {}, 24 | "source": [ 25 | "## Hand shape decoding dataset (Janken dataset)" 26 | ] 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "metadata": {}, 31 | "source": [ 32 | "Initializing dataset instance:" 33 | ] 34 | }, 35 | { 36 | "cell_type": "code", 37 | "execution_count": null, 38 | "metadata": { 39 | "collapsed": true 40 | }, 41 | "outputs": [], 42 | "source": [ 43 | "ds_hand = bdds.HandShapeDecoding()" 44 | ] 45 | }, 46 | { 47 | "cell_type": "markdown", 48 | "metadata": {}, 49 | "source": [ 50 | "Now you can get data from the dataset. The dataset instance downloads the data files from figshare ([Hand shape decoding (rock–paper–scissors)](https://figshare.com/articles/Hand_shape_decoding_rock_paper_scissors_/6698780)). By default, the downloaded files are saved at `~/.bdds/handshape`. The method returns the data as a bdpy data instance." 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": null, 56 | "metadata": { 57 | "collapsed": true 58 | }, 59 | "outputs": [], 60 | "source": [ 61 | "data = ds_hand.get(subject='S1')\n", 62 | "data.dataset" 63 | ] 64 | }, 65 | { 66 | "cell_type": "markdown", 67 | "metadata": {}, 68 | "source": [ 69 | "When the data file is already downloaded, `get` will load data from the local file." 70 | ] 71 | }, 72 | { 73 | "cell_type": "code", 74 | "execution_count": null, 75 | "metadata": { 76 | "collapsed": true 77 | }, 78 | "outputs": [], 79 | "source": [ 80 | "data = ds_hand.get(subject='S1')\n", 81 | "data.dataset" 82 | ] 83 | }, 84 | { 85 | "cell_type": "markdown", 86 | "metadata": {}, 87 | "source": [ 88 | "Instead of using the default (i.e., `~/.bdds`), you can specify any data directory when creating a dataset instance." 89 | ] 90 | }, 91 | { 92 | "cell_type": "code", 93 | "execution_count": null, 94 | "metadata": { 95 | "collapsed": true 96 | }, 97 | "outputs": [], 98 | "source": [ 99 | "ds_hand = bdds.HandShapeDecoding('data/handshape')\n", 100 | "data = ds_hand.get(subject='S1')" 101 | ] 102 | }, 103 | { 104 | "cell_type": "markdown", 105 | "metadata": {}, 106 | "source": [ 107 | "## Generic object decoding dataset" 108 | ] 109 | }, 110 | { 111 | "cell_type": "code", 112 | "execution_count": null, 113 | "metadata": { 114 | "collapsed": true 115 | }, 116 | "outputs": [], 117 | "source": [ 118 | "ds_god = bdds.GenericObjectDecoding()" 119 | ] 120 | }, 121 | { 122 | "cell_type": "markdown", 123 | "metadata": {}, 124 | "source": [ 125 | "The generic object decoding dataset includes data from two different modalities: fMRI data and CNN image features. You can specify it with keyword argument `mode`." 126 | ] 127 | }, 128 | { 129 | "cell_type": "code", 130 | "execution_count": null, 131 | "metadata": { 132 | "collapsed": true 133 | }, 134 | "outputs": [], 135 | "source": [ 136 | "data_s1 = ds_god.get(mode='fmri', subject='Subject1')\n", 137 | "data_s1.dataset" 138 | ] 139 | }, 140 | { 141 | "cell_type": "code", 142 | "execution_count": null, 143 | "metadata": { 144 | "collapsed": true 145 | }, 146 | "outputs": [], 147 | "source": [ 148 | "data_s2 = ds_god.get(mode='fmri', subject='Subject2')\n", 149 | "data_s2.dataset" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": null, 155 | "metadata": { 156 | "collapsed": true 157 | }, 158 | "outputs": [], 159 | "source": [ 160 | "cnn_features = ds_god.get(mode='image_features')\n", 161 | "cnn_features.dataset" 162 | ] 163 | }, 164 | { 165 | "cell_type": "markdown", 166 | "metadata": {}, 167 | "source": [ 168 | "## Decoded DNN features" 169 | ] 170 | }, 171 | { 172 | "cell_type": "code", 173 | "execution_count": null, 174 | "metadata": { 175 | "collapsed": true 176 | }, 177 | "outputs": [], 178 | "source": [ 179 | "ds_dnn = bdds.DecodedDNN()" 180 | ] 181 | }, 182 | { 183 | "cell_type": "markdown", 184 | "metadata": {}, 185 | "source": [ 186 | "- mode: 'decoded', 'accuracy', or 'rank'\n", 187 | "- net: 'AlexNet' or 'VGG19'\n", 188 | "- layer: CNN layers in AlexNet or VGG19\n", 189 | "- subject: 'S1', 'S2', 'S3', 'S4', 'S5', or 'Averaged'\n", 190 | "- images: image file name" 191 | ] 192 | }, 193 | { 194 | "cell_type": "markdown", 195 | "metadata": {}, 196 | "source": [ 197 | "Get decoded features as an array. If the corresponding data file is missing from the data directory, DecodedDNN tries to download the required data file from remote data repository (such as figshare).\n" 198 | ] 199 | }, 200 | { 201 | "cell_type": "code", 202 | "execution_count": null, 203 | "metadata": { 204 | "collapsed": true 205 | }, 206 | "outputs": [], 207 | "source": [ 208 | "ds_dnn.get(mode='decoded', subject='S1', net='AlexNet', layer='fc8', image='n01443537_22563')" 209 | ] 210 | }, 211 | { 212 | "cell_type": "markdown", 213 | "metadata": {}, 214 | "source": [ 215 | "If a keyword was omitted, get() returns all data as a list. For example, if image is omitted, get() returns all data for all images in the dataset." 216 | ] 217 | }, 218 | { 219 | "cell_type": "code", 220 | "execution_count": null, 221 | "metadata": { 222 | "collapsed": true 223 | }, 224 | "outputs": [], 225 | "source": [ 226 | "ds_dnn.get(mode='decoded', subject='S1', net='AlexNet', layer='fc8')" 227 | ] 228 | }, 229 | { 230 | "cell_type": "markdown", 231 | "metadata": {}, 232 | "source": [ 233 | "You can obtain the data as (a list of) dictionaris instead of arrays. The dictionary contains following fields:\n", 234 | "\n", 235 | "- `data`: data\n", 236 | "- `identifier`: a dictionary containing keys to specify each data (in this example, it contains 'mode', 'subject', 'net', 'layer', and 'image')\n", 237 | "- `file`: path to the data file (relative to the data store directory)" 238 | ] 239 | }, 240 | { 241 | "cell_type": "code", 242 | "execution_count": null, 243 | "metadata": { 244 | "collapsed": true 245 | }, 246 | "outputs": [], 247 | "source": [ 248 | "ds_dnn.get(mode='decoded', subject='S1', net='AlexNet', layer='fc8', image='n01443537_22563', return_dict=True)" 249 | ] 250 | }, 251 | { 252 | "cell_type": "markdown", 253 | "metadata": {}, 254 | "source": [ 255 | "By default, `get()` returns an array or a dictionary when it finds just one item, and returns a list when multiple items were found. You can force the methods to return always a list by specifying `force_list=True`." 256 | ] 257 | }, 258 | { 259 | "cell_type": "code", 260 | "execution_count": null, 261 | "metadata": { 262 | "collapsed": true 263 | }, 264 | "outputs": [], 265 | "source": [ 266 | "# Returns an array\n", 267 | "ds_dnn.get(mode='decoded', subject='S1', net='AlexNet', layer='fc8', image='n01443537_22563')" 268 | ] 269 | }, 270 | { 271 | "cell_type": "code", 272 | "execution_count": null, 273 | "metadata": { 274 | "collapsed": true 275 | }, 276 | "outputs": [], 277 | "source": [ 278 | "# Retrusn a list of an array\n", 279 | "ds_dnn.get(mode='decoded', subject='S1', net='AlexNet', layer='fc8', image='n01443537_22563', force_list=True)" 280 | ] 281 | }, 282 | { 283 | "cell_type": "markdown", 284 | "metadata": {}, 285 | "source": [ 286 | "Getting predicition accuracy and rank:" 287 | ] 288 | }, 289 | { 290 | "cell_type": "code", 291 | "execution_count": null, 292 | "metadata": { 293 | "collapsed": true 294 | }, 295 | "outputs": [], 296 | "source": [ 297 | "ds_dnn.get(mode='accuracy', subject='S1', net='AlexNet', layer='fc8')" 298 | ] 299 | }, 300 | { 301 | "cell_type": "code", 302 | "execution_count": null, 303 | "metadata": { 304 | "collapsed": true 305 | }, 306 | "outputs": [], 307 | "source": [ 308 | "ds_dnn.get(mode='rank', subject='S1', net='AlexNet', layer='fc8')" 309 | ] 310 | } 311 | ], 312 | "metadata": { 313 | "kernelspec": { 314 | "display_name": "Python 2", 315 | "language": "python", 316 | "name": "python2" 317 | }, 318 | "language_info": { 319 | "codemirror_mode": { 320 | "name": "ipython", 321 | "version": 2 322 | }, 323 | "file_extension": ".py", 324 | "mimetype": "text/x-python", 325 | "name": "python", 326 | "nbconvert_exporter": "python", 327 | "pygments_lexer": "ipython2", 328 | "version": "2.7.13" 329 | } 330 | }, 331 | "nbformat": 4, 332 | "nbformat_minor": 2 333 | } 334 | -------------------------------------------------------------------------------- /demo_DecodedDNN_Figure2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Demo for creating Figure2" 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 1, 13 | "metadata": { 14 | "collapsed": true 15 | }, 16 | "outputs": [], 17 | "source": [ 18 | "import numpy as np\n", 19 | "import matplotlib.pyplot as plt\n", 20 | "import matplotlib.cm as cm\n", 21 | "import beeswarm # for beeswarm plot, pybeeswarm module is required\n", 22 | "\n", 23 | "import bdds" 24 | ] 25 | }, 26 | { 27 | "cell_type": "markdown", 28 | "metadata": {}, 29 | "source": [ 30 | "### Load Data" 31 | ] 32 | }, 33 | { 34 | "cell_type": "code", 35 | "execution_count": 2, 36 | "metadata": { 37 | "collapsed": true 38 | }, 39 | "outputs": [], 40 | "source": [ 41 | "# path to the unzipped files \n", 42 | "#data_path = '../data/'\n", 43 | "data_path = '../decodedDNN/'\n", 44 | "# data initiation\n", 45 | "decoded_dnn = bdds.DecodedDNN(data_path, verbose=False)\n", 46 | "\n", 47 | "# Set parameters\n", 48 | "subjects = ['S1', 'S2', 'S3', 'S4', 'S5']\n", 49 | "net = 'AlexNet'\n", 50 | "#net = 'VGG19'\n", 51 | "\n", 52 | "# Layers \n", 53 | "if net == 'AlexNet':\n", 54 | " layers = ['conv1', 'conv2', 'conv3', 'conv4', 'conv5', \n", 55 | " 'fc6', 'fc7', 'fc8' ]\n", 56 | "elif net == 'VGG19':\n", 57 | " layers = ['conv1_1', 'conv1_2', \n", 58 | " 'conv2_1', 'conv2_2',\n", 59 | " 'conv3_1','conv3_2','conv3_3','conv3_4', \n", 60 | " 'conv4_1','conv4_2','conv4_3','conv4_4', \n", 61 | " 'conv5_1','conv5_2','conv5_3','conv5_4', \n", 62 | " 'fc6', 'fc7', 'fc8' ]\n", 63 | "else:\n", 64 | " raise Exception('net should be AlexNet or VGG19 : net = ' + net)\n", 65 | "\n", 66 | " \n", 67 | "# Exract 'accuracy' data \n", 68 | "# If data not exists in data_path, download it from figshare.com\n", 69 | "n_layers = len(layers)\n", 70 | "acc_mean = []\n", 71 | "acc_data = {}\n", 72 | "for layer in layers:\n", 73 | " acc = decoded_dnn.get(mode='accuracy', subject=subjects, net=net, layer=layer) \n", 74 | " acc_data.update({layer: acc})\n", 75 | " acc_mean.append(np.nanmean(acc))" 76 | ] 77 | }, 78 | { 79 | "cell_type": "markdown", 80 | "metadata": {}, 81 | "source": [ 82 | "### Figures" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 3, 88 | "metadata": {}, 89 | "outputs": [ 90 | { 91 | "data": { 92 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAFSCAYAAACE1mebAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXm8JVdVqL91pjt13x6TEBJCggQioIg0AR8qIQQIAYlM\nMifgwzyE+Hg4BBBBUFQEBAdAjBgjokZAlIiRqGDAKGKCBjCEQAwhI+m5b/cdzrjeH7uqu271Geqc\nU8OufffXv/vre+rUrdq7hr3XXqOoKh6Px+PxeDYWlaIb4PF4PB6PJ3+8AODxeDwezwbECwAej8fj\n8WxAvADg8Xg8Hs8GxAsAHo/H4/FsQLwA4PF4PB7PBsQLADkgIm8TEe3z808ZnOtpIvL/0j5umojI\npSJiTfypiGwK7scrItvuEJH3FNgsTx9E5LEickBEFkfsd6OIXJlTs0Yy6TMfPJeXjtjnFcF+m4LP\npwefnxXZZ93zLCI/EX3ex2iPiMjXROTl4/5tn2OF4+I7Bnw/su9TnvfaPt99QkSuG/N4JwbHPD2l\nJuaGFwDy4xDwQ7Gfn8ngPE8DrBYASsJzgN8tuhGe43gH8CFVXSq6IRbxd5jxZGXIPvHn+SeAV4x7\nIjWJY94F/LKI1Mb9+xgvDv5/0ZTHmZSnicjjUjjOicAvA6encKxc8QJAfnRU9d9jP7cU3ahRiMhc\n0W0oAlX9L1W9s+h22IKIzFrQhjOB84Erim6LTajqnmA86Q3ZJ83n+ePAScAzJj2AiPwg8DDgs8D3\niMjZKbUtKfuBrwFvzvm8VuEFAEsQkYqIvFFEbhORpoh8U0Quju3zTBH5RxHZLSJLIvLvIvK0yPdv\nA34OeHDEzHBl8N11IvKJ2PHOCfZ5VPA5VB2+VEQ+IiIHgb+N7P8qEbk5aN93ROSyBP2aEZH3i8hB\nEdkvIu8D6n322y4il4vI/SKyJiL/JiKPj+1TFZE3BdemKSJ3x9W8gar1W8H3t4nI6/uc63nBMVZF\n5AvAWX32iatMrwzUyk8Vka+KyLKIXC8ij4z93TYRuSr4/l4ReYOIvEdE7hhxnX5IRK4WkfuCv71J\nRF7aZ78Hi8hfiMheEVkJ2vKSyPdzIvKu4P40ReTbIvIbke+PU6sG6su9kc+hSvns4LlZBX4h+O6d\ngQr4SHD9/0xEHtCnnT8V7LcW3NNPiMgWEblARHoickZs/zOC7RcOuUwXA19V1W/F/vZRIvKvwblu\nEZFnD7jGPyIinw+u2z4R+UMR2Tzm9d0pIn8S/P1KcH12xY4x8pkXkYVgn1uD43xbRD4g/U0bDRH5\nneBYB0Xk90SkETnWOhPAgL4ffZ6Dd+Z5wJPk2DjxNhF5TXBfN8X+NhwnHg2gqmvANcBFg86XgBcD\naxgtxBrHtAFDEZELg/dwTUS+Gzzr9eC7uoj8V3BPJPI3vxfcz+hzqsCvAc8Wke8bcc7Tgnd6f3Cv\nrhWRhwffnY4RJAD+ObyeSfpiBarqfzL+Ad4G7AVqsR+J7PMB4AhwGXAe8JtAF3hWZJ9LgddjVkFP\nBd4b7PPE4PtTgT8D7gOeEPx8T/DddcAnYu06B/MiPCr4fHrw+b6gPU8Fzg2++wWgjXlpngq8EWgC\nl47o+/swL/jPYVYMnwTuJtAmBvvMAP8J3I4ZVM4HPgUcBh4Q2e/DQAujBn4q8ELgY5Hvfypo/29h\nTCG/AfSAN0b2+UGgg1nFPCPo1+3B370ist8dwHsin68EdgM3Bed9NvBN4L9j9/FTwD7gVcCzMCuc\nu4A7RlynFwO/GPzNucBbgr6+OLLPicC9wG2YgfMpwOuANwTfC/APwXW7LPj+IuAPI8fQ+D0jeD4j\nn18R7Pc/wX17MvCYyHV4WfDsPB/4IvB1oBL5+18Krvv7g3v5XOCPgFOAanD/3xZrw9uB7wK1Idfo\ni8Dvx7bNAfcAXwnO89Lgfu4Grozs90TM8/qXwAXAy4O/+0TS6xvsc33QzlcCPwZ8IbjeDx3zmT8B\n+IPgWXpScE1vAa6N9U+Ddv5VcKyfD/rx7j73a1PsPY6OHXcQPM/A9wCfw7xz4ThxKrAVWCXyHgT7\n/wnw5di212FW0dFn/0pGPOeR5/RO4JPB578K+ljp0/dLI59/AjPefRDzfv80cJD17+n3Bdfn/wWf\nz8U8iy/sMx5XgFuBqyLffQK4LvJ5e9DW/wrO/6zgGbgL8+zNAC8J2vqa8HqOO0cU9VN4AzbCT/DA\naZ+f84LvHxo8pBfH/u4jwA0DjlnBCBHXAldEtr+n30vIeALAX8f2W8QIJ78c2/4rmMGwOqCNO4IB\n5Q2xdn+D9YPh/8ZMdmdGttUwE9C7g89nBW37v0Ouxz3AH8e2fxDjfzEbfP4YZsKKDlxvJpkA0Im1\n8ceDvzsr+Pyo4PMLIvvMBYPNcfdkyPMiQf//APhcZPtvAMvAyQP+7unB+Z895NjjCACvG9HOKmZS\nV+BHg21bMbbo9w75u3cA3w7vQdDfddd7wDVZA14b2/4ajGB6amTbE4M2XRnZ9i/AP8f+9lzWP/+j\nru/5wf5PimxbAPYAfzDOM9/n2LVIu0+L3a9vsF7AenNwjbfH7lciASD4vG6ii2z/KPD5yOdNmHc/\n/sycE5wj+j78EXBbguf7R4K//Yng8/ODz08e9KwG9/87HP9+/2RwvXdEtr0puD67gn7/5aDnPbh2\nXeBh/a4L8KsYgX57ZNs2zJjyWl3/3p+T5P226cebAPLjEPC42M+Xgu+eghEA/lpEauEPZvX4AyJS\nBRCRUwP14z2YyaiNkYQflnJb/y72+YcwA93HY+37HMYWeOqA43wfMItZFQOgxk75qdh+5wFfBr4d\nOTbA5zEvMZhVKJiJuB+nAg/ErOyj/CVGgAnVfGcDV2vw5gZ8csAx49yh69XPX4+cm0hbj5pNVHUV\nGBntIcZ08Lsi8h3MfW0Dl7D+3p4LfEZV7xtwmHOB/ap69cieJCP+HCAizxBjnjmEeQbvDr4K2/lD\nGKHnj4cc9wrgwZhJBMy9ffCIv9mGWW3tjW0/G7M6DduBqv4rRgMQtnk+aNfHYs/v9Zjr/Nhg11HX\n92xgt6p+PnKuZeDTwA8Hm5I+84jIywOV9ZGgHdcHX8Xf50/pevv+JzHX+FED2jkNfwT8iIg8JPj8\nExjh5M9j+4X34ahaXVX/t6o+NME5XowRtD4dfP47jBZlmBngYcBpHH8PP4e53tFr8S6MRuj64LvX\nDDnuRzEr/DcN+P484B+Bpcg5D2PGq10D/qY0eAEgPzqqemPs53Dw3U7MauoQxwb/NmayqwEni0gF\nuBr4X8BbMYPm44C/xzzkaXJ/7PPO4P+bY+3752D7gwYcJxwcdse2xz/vxKjO2rGfV0aOvQNY1sHe\n3ycPaHv4eXukTaPaM4iDsc+t4P/w+j8AOKzGRhplT4JjX4lRB78bI9Q9DjNRRu/tDox5ZhCjvh+X\ndddSjMf01ZhJ/+WYSfUJwddhO3cE/w9sh6rejtFIvTLY9ErgP1T15iFtCY/fjG3vdz+JbduGeb8+\nyPrnq4mxzUefsWHX7+QB57qf9c9X/PzHfRaR52A0fF8EXoC5js8Jvo6/z4OOdTLpcx3GhPKK4PMr\nMQLI/th+4X0Ya+wJJtAXYExVDRHZihHsrgWeF9rz+xCOQdew/h5+O9h+dAxS1S5mITCDWf3vG9Qe\nVe1gBIaXiciDB5z3hRw/Nj2ZweNeaZg2jMOTDvsxq6knYjQBcXZjzASPAZ6hqp8Jv5DkXvprQCO2\nbduAfTX2OXz5n8XxEywYO1o/vhv8f2LkGOHn+PFvxNj04oQDzT5gQUQWBwgB4cAdP/ZJkXOEbYrv\nE/88Kd8FNovIbEwIOGHYH4nxsH8WRqX4ocj2uIC+j+GD/qjvwVzPSZ+D52CEmReGGpQ+g2Y42J7M\n8av1KB8G/lBE3oSx3f/ciHaH929rbPt36ePEyfp7ehDTl7dhJpA49wb/j7p+99H/WTmJ9c9XeP5h\nz/wLgC+p6tHVqYg8acB5Bz2vaQp7gLFRiMgVwCUi8lGMZqOft394H+KCwSjOw0yqz+GYwBPl6RzT\nDEQJz3MJxh4fJxQEwmfyl4P9Xi0if6iq/z2kTVdg/FbeMOC8V2NMAXEO99lWKrwGwA4+h1mhbOmj\nJbhRVVsYlR9EVkDBg/7E2LFa9JfK7+b4gfJpffbrxxcxdrYHDmjfoBfhaxjB46hndzCpxT29P4sR\ncO7sc+zQw/Zzwf+DPI/vxgzkL4ht/wlgiWOeujdgPH8lss9zBxxzXG4M/j/qhR4IaE8d8XczmHcx\nem83R48T8Fng6SJyEv35LLBdIglg+nA38L2R81QwJqgkzAHtmPkkHqkQPisXjzjWJzHP6lWYvl81\nbOdAoLoTOCP21Q3AY0XkqBlKRJ5IZNIM1PT/Djx8wPMbCgCjru+XgBNF5Ecj55oHnskx9X3SZ36O\n47UZx0V9BFwYEwafi7nGwya1UQwaJ8Boo07FmAPuwajA45yOWazcNuZ5X4yZVJ/c52c3g80AtwZt\nOX3APdwHJlERZkK/HaOh+g/gI0M0C6hqE+M79ZMcLwB+FngkcHOfc4YLn7gmsDwU7YSwEX6IOVkN\n2OeDmBXIGzAD8jMxntwfDr6fwXie/mfw3YswL8W3gRsjx7mIwKENY6M6Pdj+zGD7+zBS+K8Ff9vP\nCfBZfdp3Gcax5h0YweF84P8Scxjs83e/wzGP6PMxHr9xj+jZoF9fx7yE52DClH4TeH1kvz/ADJq/\nEvTh+az34P0pzKAUqtF/jeOjAHZhnH4+HrTn50keBXBjrG/HXS/MamEfxrHxmRyLArh9xHX6j+B+\nPA+zMvpS0K6oc94JwbX7JmaCPRd4LXBZ8L0An8EIPD8ffP9SAge1YJ93B/fxNUH/P4GZWPs5AW6K\ntfGCYPtvY57Rt2CewXWOhRh7ag+TeOZ8zOR3OXBK7HjvD/72zxO+R38OfDq2bR6zEv5KcN1egnEe\n3cN6J8AfDp6dPw3ac27Qz49zzAFs6PUN9vnX4HwXY7Q213F8FECSZ/41Qd/fjHmW3xu0O/48Kcei\nAM4PjrkG/Nag+0UyJ8C3YuzwP455Jx4Yu66fDo7x6wPuxW9iQjKj24Y6AWLe80PEIjki3/8uxuFw\nPtL36HP1Qsxk+3uYZ/E8jEbgmsjfXBrc5+8PPn9PcMy3DRuPg+doT3DO6yLbd2Lejy8Gz9aTMIuK\nDxBE6AT9WgH+AiN07EryPNvwU3gDNsJPvweuzz6CyeB3c/AA78E4wV0U2edxmIliFfhW8OJfyXoB\nYBbjTLWb4z2h34SZjA5jnF+eTUIBIPj+ZRjnl1XgAGaS+tkR/ZrhmCf+geDl/VliHtHAFszAeVfw\nkt+NWSU+MbJPFRMqd3tknytix/kZzKqkFez3+j5tekGwzxpm5fY40hMAtmMcD5cx5pK3An8I3DTi\nOj0UIywsBwPOZf2eG4yz3F8G13IFM/G9KPL9HGY1c3fwHH0b+LXI95swYV37MerqX8KE4I0UAILv\nLgvu0TLGufFM+kcW/B+MQNcMzvMxYDG2z3lEomESvEfPxzy7c7Ht3w/8W3CuWzGT2o1Env1gv8dz\nTEBaDtr3XozmLen1PQFjuz+AeQ8+Dzxu3Gce8yy/B/OeLmEm+Mf3eZ40+Nv3B8c6hJl8ZgbdL5IJ\nADuBvw6eA+X4sMxXEfPyj33/FY6PCrqSIdEuGOFWgf814Puzg+9fGOl7/Ll6BiaiYzm4bjdhFiU1\nzDu0DPxi7G9ei7Hb/2Dw+W30GY8xY8s6ASDY/kDMmHp/8IzdgRk/HxnZ56UYwbFFbGyz+ScMw/F4\nPBkQOD39N8bee3HR7bEJEXkXZjX1EB2SxS6yfwMj2LxWVePRHp4UEZGPYcIhf6TPdw/HLFQeqqp3\n5N02T3p4J0CPJ0VE5AWYFcPXMOGHP4VZJU+TNc0pggnkERinz7cnmfwBVLUlIu/GJKHxAkAGBFnx\ndmH8DAbl6H898FE/+ZcfawSAwPP0WZg42+PiWwPnjt/B2H5WMOra/8y3lR7PSJYxoVMPxah5vwb8\nmKr+R6Gtsos/wKi7r2b8gkvvB+ZFZIuqHkq9ZZ6/xZgHPqiqn4h/GYzD38bYuz0lxxoTQOBZewT4\nyAAB4AKMffcCzODxO6r6+Ph+Ho/H4/F4RmNNGKCqfoHhMaUXYoQDVdV/B7aKSBaJMDwej8fjcR5r\nBIAEnILxPg65O9jm8Xg8Ho9nTKzxAUgTEbkEEx/KwsLCY886q1+iMI/H4/F43OPLX/7yXlUdmoEU\nyiUA3MP63MunBtuOQ1UvxyQeYdeuXXrjjTf2283j8Xg8HucIioqNpEwmgKuBi8TwBOCQDq7a5fF4\nPB6PZwjWaABE5C8wKWB3isjdmGIOdQA1BVKuwUQA3IYJA3xl/yN5PB6Px+MZhTUCgKoOqwVtciua\nlI4ej8fj8XimpEwmAI/H4/F4PCnhBQCPx+PxeDYgXgDweDwej2cD4gUAj8fj8Xg2IF4A8Hg8Ho9n\nA+IFAI/H4/F4NiBeAPB4PB6PZwPiBQCPx+PxeDYgXgDweDwej2cD4gUAj8fj8Xg2IF4A8Hg8Ho9n\nA+IFAI/H4/F4NiBeAPAkxtRj8ng8Ho8LeAHA4/F4PJ4NiBcAPInxCgCPx+NxBy8AeDwej8ezAfEC\ngCcxPa8C8Hg8HmfwAoAnMX7693g8HnfwAoAnMV4D4PF4PO7gBQBPYnq9olvg8Xg8nrTwAoAnMV4D\n4LEVn6PC4xkfLwB4EtN1fJD1k4jH49lIeAHAk5hu10+QHk8R9Hr+3fOkjxcAPInp+EHIYyleeeOx\nGVu1i14A8CSm6wUAj8fjGYultTa7DzeLbkZfvADgSUy763YYgKVCuicBrt861/vnMu1Oj1bHzrHT\nCwCexHgTgMdTDLaqkD2jaXV7tCxdPFkjAIjI+SJyq4jcJiJv7PP9FhH5WxH5iojcLCKvLKKdGxVV\ndV8DUHQDMsT1CcT1/nnZu7w02z2abTvHTisEABGpAh8AngE8AnixiDwitttrga+r6qOBc4DfEpFG\nrg3dwHR76rwPgOuTiMu4fudcz8Hh8ru32u6y2u4W3Yy+WCEAAGcDt6nq7araAq4CLozto8BmERFg\nE7Af6OTbzI1LVzeAAFB0AzwT4/D8AbgvADQttZGnwWq7y2rLCwDDOAW4K/L57mBblPcD3wvcC3wN\neJ2quvvUWIaq+4OQy91zuW8A6rj45rrw7TLLzQ5r7a6V99AWASAJTwduAh4I/ADwfhFZ7LejiFwi\nIjeKyI179uzJs43OshFMAK4LOC7j+q1z/d1zlXb3mP3/SNM+hbUtAsA9wIMin08NtkV5JfBJNdwG\nfBs4q9/BVPVyVd2lqrtOOOGETBq80eiqOj9BOt49p3H93rV9Fs5ScnitE/m9XWBL+mOLAHADcKaI\nnBE49r0IuDq2z53AUwBE5CTg4cDtubZyA9PtKo4HATivRnYZ1+9dx/FSnK4KcNFJPyoM2EKt6AYA\nqGpHRC4FrgWqwBWqerOIvDr4/kPArwJXisjXAAHeoKp7C2v0BsN1J0BVdXYQAvcdHB1+NAGsTSST\nFq4KcEurxyb9Q6v2aQCsEAAAVPUa4JrYtg9Ffr8XeFre7fIYej23TQCuOzmaMCspuhmZ4XIYGbgv\nALgqwC1FNADLzQ7dnlKt2PMe2mIC8FhOp6dOZwLsqatrEIPLfQP3++dymBy4KcA1O+vD/1Tt8wPw\nAoAnEZ2u0nXYDtlTt0uuOji+rsP1/jU7dsaRp4WLQ0s/lb9tZgAvAHgS0en16PXcDUfqqTqrhgR3\nbaxHcbx7tqaSTYuugxJc1P4f4gUATykJ1f+u1gPoOe/kWHQLssVl/41eT1lzXAPgYpSD1wB4nCGc\n+F31A+g47uToct/A7f61Hde+gXt9U9V1DoAhzXaPNYvqAngBwJOITpCIpOOqBsDxTIcOdw1wu3/h\nu+eq9g2g3XHrBh5pdugOSN60ZJEWwAsAnkSEKjpXM5J1HBcAXO4buOlFHhJO/C4LAC3H+nZwZfAk\nf9ALAJ6y0eq4vQrpuh7m6HDfwG0NQKvrtvDtovZtmK3/wHIrx5YMxwsAnkSEGoCOo4NQp6fOmjcg\niHJwbJCN4rIPQJgEyNVkQCbHiFt9O7AyeJI/0uxYs5DyAoAnEeED65qqLqTT7bmtAXA806FrK8go\nrgsArlUaPdLsDA3bVB0uIOSJFwA8I+l0e0cTdbg6CLW76qx2A9zPc+CycLMWTCauJgPq9NwSvvcd\naSbYxwsAzuGqI1J01W+L6iptOr0ebcfUkFF6jpdzdmkCiRNO/GuOJgPq9twSvvcmEACS7JMHXgDw\njCSqznI1J3m7o7Qd7Ru4p2aN43Lfwonf1WRArW7PGf+bdrc3NAIgpNnu9c0TkDdeAPCMJKoBcFUN\n2er2nPVvgEAAcFgD4KppCjiaOMamBDJp0u6qM+/e3iPNxFk3dy8VrwXwAkCKuDq+RjUArU7PSVNH\nq9Nz1rwBQZ4Dh9SscVzVcLQ6vaP9arZ7zvbRFBsrf9/GmdR3H17LsCXJ8AKAZySt7vqSli7GI7cC\nR0dXhYBuT532cXAxlAxYV04WYNVBLUCo2Si7drHT7bFvObkAsNLscqR5fMGgPPECgGckceejsr+o\ncXq9Y/Z/V1XJ7W7PKUerOK5qAFba6yeIlVaxE0YWhEJNXNgpG3uPtMYua3z/UrFaAC8ApIh7w48h\nPuG75o283sfBrb6FuB7m6FooWchyc/27t9Is9yTZj7BPKyUXACaZzIv2A/ACgGck8aQWrmkA1kc5\nuNW3kLbjTo6drps+DssxFXHRKuO0aXePVccrc9/GVf+HLDc7hfbbCwAp4mqcdXxV7NoqORpe5Zp2\nI6Td6Tlr3gB38zjEJ4cyT5L9iAo4Ze7bJOr/kN0FmgG8AOAZStQLOcS1cKRof1zrW0iz626UQ6+n\n9Hru1alod3vH2cVXWh2najosrR6b9A+vtUvbt2k8+ncfLs4M4AWAFHFRA9Av+Yhrq+So7bHsdsh+\ndIMQQNc0NyGhacM1AaBf3fheDw6vlXelHCdaNa/XgyMldHLs9nSq1L5H1jqFOXd6ASBFHJz/+66I\nm46tkqOTftk9kfsR+jW4agIInf9c83EYVDf+4KodeeTTIF4291CCLHq2sW+5OXUESlHOgF4ASBEX\nBYB+Va3WOl2nkgFFJ/21dte5cLJw4m86dt9CXK2WNyilbJJUs2Vgrd09boFRxr7tSUGFv6eg2gBe\nAEgRJ00AfVb7vZ47q61uT4/ro2ux1qHJRtWd+xYl9G1wyceh11MODVjpH1hpOSHI9Zvsy6bdUFX2\nplDZ79BKu5AIJC8ApIiLAsAgm7grqvJ+k71rfgDrnBxb7kySIc2j5XLd6duh1fZAr/JOVzlcYo/5\nkLj6H8y9LJMj7qHVdmpFxIooEewFgBRxMAppYOpRV1KSxhOtmG3lH1yjRO+VixXlwj65lMNh3/Lw\nyeDAiO/LwIGV/n0okxkgjdV/iBcASo6LGoBBE70rq+TlPhqAfkJBmYneQ1fuW5RQG+VSsZxBk2PI\nKAHBdjrd3kBBu0xmgP0p3od9y83cTTvWCAAicr6I3Coit4nIGwfsc46I3CQiN4vI5/Nu4yhcS0Xa\n7HQHZldzxQTQbxDqJxSUmWj6WNf8G2C9gOOCZqrT7fUNAYxyaKW8MfNgVOeD5rqyaABandH3aRw6\nXWUp5xDPRAKAiDxgnO3jIiJV4APAM4BHAC8WkUfE9tkKfBB4tqo+EnhBGudOE9c0AMPsxWWy0w3j\nSJ8XzqVkK3EnR9c0AKq6Thh1QcA5sDJ4cgzp9rSvDb0sDApxBPNOlsGh8+AILc0kpKlRSEJSDcA3\nB2z/ekrtOBu4TVVvV9UWcBVwYWyflwCfVNU7AVR1d0rnTg1X1I8hw1ZTLkwknW6vbz96PXe0AP1S\nybrgQR7SjGWqdKFYzij1f8j+DCagvBi1yi+DcJOFGcZWAUCO2yCyCKQlpp0C3BX5fHewLcrDgG0i\ncp2IfFlELhp0MBG5RERuFJEb9+zZk1ITR+OaADBsNdUvRXDZGJZRLW9VXFbEBYBuV51Qk4fETTgu\nCG5JJ4GyOgIOC3EMyWJ1nTZZXP9Dq61cx9WhAoCI3CUidwJzInJn9Ae4D/ibXFppqAGPBZ4JPB14\ni4g8rN+Oqnq5qu5S1V0nnHBCbg10zQdg1ERRdnXr0trgVUYZM5L1o5+Jo9+2shLX4JRdM9Xu9hLf\nn6W1dimF8GEhjiH7l+1+/1Zb3UyetV4vX+GnNuL7l2FW/9cAL49sV+B+Vb01pXbcAzwo8vnUYFuU\nu4F9qroMLIvIF4BHM9g8kTtdx+IARz3gq60um2frObUmfYapGcuggkzC4T5CztJahxMXC2hMBsQ1\nHGUP4Uyq/gczWRxabbN9oZFhi9Inier88FqbdrdHvWqNn/o6sjS/7F9usWPTTGbHjzJUAFDVzwOI\nyE5VXcmwHTcAZ4rIGZiJ/0UYm3+UTwHvF5Ea0AAeD7wvwzaNTduxYiSjBtPlkq+2htkhl5sdqweg\nJKhqXzNHP6GgrMSf0U7XOD3O1qsFtWg6xvWAP7DSKp0AkMTEoWr2O2lxNocWjc/+DGP29y23ODOz\no69nlAYgpCMilwA/AGyKfqGqA23xSVHVjohcClwLVIErVPVmEXl18P2HVPUWEfkM8FWM78GHVfW/\npz13mrhUjazV6Y3sT5lXW6ut7sjc8Uur7dwk8Sw40uz0VRG74t8A/WvIH2l2SisAjGtXLoOtPEqz\n000cOrfncNNKAUBV2becXe7+I2sdmp0uM7Xsn+GkAsBHgO8H/ha4P4uGqOo1GFNDdNuHYp/fDbw7\ni/OnQdshE0AS+36Z7a1JVPwHSy4ADJro250eK60O842kr7+drLa6fYXUw2sddpbwvrW7vb4CzTCM\nPV2pVI7z07aScTLn7Vs2NQ9E7Orb0lon88XegeU2D9hijwDwdOAMVT2YZWPKjksagCTq/TI7ASbJ\nNlZ2P4BhjoyHVtulFwAGOXGmmZwlT4YlxxlEr2euw9b5cpgBxqmc1+70OLjSZptlJo48QvX2LTd5\nwJbstR99CzGvAAAgAElEQVRJDZx3AuUTqXOmDMkrkpJEvR/aW8tIEi9/MyCXV6gbph4uS7a1YQwS\n0MoquE2qzj9QknvZ6fbYP6bqvKgyucPIQwA4kFMURFIB4CPAp0TkxSJybvQny8aVCVV1qtRqUvt+\nGc0ASVWt3RJXXWt2hocpjeNtbiuDJvpWp1fKVNWTTuRluZf7lltjF0zbvWSXANDraS4aprV2N5dn\nOKkO8NLg/1+PbVfgIek1p7z0FGfSx0LygjjLzU7pvJAPJki1enTf5TaLJQx1HLXCX2l2c3M0yoLu\niIH44GqLucZcji2ajnaC/P+DCOsC2O4HMMlkvtbucmi1zZY5O97BwwMca7Mgj2c4kQZAVc8Y8OMn\n/4BuT1FHhIBON3lN7nGdlmxgnBVTWdOtJlFTltkMsDTCXl62vh1YaY1t/w/p9nRobn0b6PaUvROq\n8/ccXku5NZOTp3/J0mr2Y2viIGcRqYvIj4jIC4PPCyKykF3TykVYCKhbYptxyDiTehkFgHEGogPL\nrVIKdUnCyfLOO54moya8sgkAew9Pdy8mnVzzYt9yc+KVs01mgDzHuzzOlbQa4PdhMu79IfBHweYn\nAVdk1K7SEaYBLmNqzjguCwCrre5YBWO6PS2NjTVkrZ0sTWlZc8nDaIe5MJFTGUgjrnzvGN71RTDN\nJL7S6lqTvCrPOhp5+AAk1QD8PvBWVT0LCO/E54EfzqRVJaTrkACQ1P4PxlGuTJEAkwy0WVT9ypKk\nK/uVVrdU9y5ENZnKuyxagEOrbZrt6YQVmybJOL2eTu3Nf78lWoBRycNSPVfXHgHgkcBHg98VIMjJ\nXx4vm4wJJ34XCgKNu6ovkxZg3wQpPG1Xr8YZp49l6xsEjlgJcm6MqjhnC7tTWr2ndZy02bvcTHS/\nhrF7yQ4/gDxzvfR62fuUJRUA7sBU4juKiJwN3JZ2g8pKJ4hvcUMDMN6EXpaUwKo6kVPfSrM8K+Vx\n1cmTCERFczBhjLTtFeVC0rJx22Qrj5JGu1Za3aHVOz2TkVQAeAvwdyLydqAhIm8CPg78UmYtKxnH\nNADlsDsOotXpja3mKosGYGkt2cqxH2XxAzi02h5rlbK/hE6OSYW4sKKczRxabacmXC43O9YJ42mo\n/0NsEHCqOYZaVipkHtqZNAzw08D5wAkY2/+Dgeeq6j9k2LZSEQ66ZdcATJLedxyfgSKZpnBKXpm5\npmWcVKtgntcyhTr2eprYeVHVfkfHtEPcbDMDpKH+D7HBDNCo5VcdNI9KpImTgavqfwGvybAtpeao\nBqDk9QAmWc0vl6QmwDQpU8tSdW2S1daew83SFM85sNIaS8jee6TFiRZWlAtJe8Lec7jJGTvtic4e\nVyAdxkqry5Fmh00zxdWwmG9UObCc37myZuCVFJE3q+qvBb//yqD9VPWtWTSsbLgSBjjJar5bghrs\nqtOF84Ue8zb3cdwQx5Ay+QGMG5Gx90jTyopyYLRtk9yvYSyttq3J8KiqY1X/S8Kew81CBYCFHAto\nLeTQz2FnODXy+4OybkjZcSUKYNLV/LLlNdinsf+HHFzJp0TnpEwaS77W7rLc7OQy4EzLuPHurU6P\npbWONalko2QleO1fbnHyluIDtJbWOrRTDpvbv1yshmNxbvA78q5rvzHRMS97+ln9z5VDCvKBvVHV\nn478/srMW1JyQue/XskzAR4ZUEN+5N81O+ywWI2cRrjb3iP5lOiclGkmlP3LLesFgJVWZ6LiU/uO\nNK0UALLKxLjviB0CQBb9O7TaptvTXJ3xoizO1qlUGLuo0SRsnS9QAIgiIhcBN6nqVyPbHg18v6r+\naVaNKxOhBsB2r+NhNDvdiRNdHJ5QcMiLNDKl2axOnjTEMWTfcosHbZ9PsUXpM6mAs3+5xUNOSLkx\nUzKtSWoYtkSsZNGOXs/44xS12KhUhC1z9b5OwYNW8pPQqFWYz8HckNTN8FeBu2Lb7gLekW5zyku7\nW34nwElX/2B3KOBau5uKgNLpqrXZ5ZZWpzNxHFixPxxw0hWlCY20SzBfWutkNlY0273CwwFVdWC5\n5mkpuvDR1vnsq5/mVWE1qQCwCCzFth0CtqbbnPISDjBl9gGYZpJcbnasnUDSzHZna+a8aWOtu127\nK8pNs2JWLX7SiHMoY0Gy6P4eSZitcRKyEiySsj0HAWCbZQLA14HnxbY9B7gl3eaUl2NhgHatNMZh\nmlW8KhyxNBwwTWertJKapM2+FNqVxjGy4nBzuhWzbfkAslbTF93fpQxNgnmW5O3HljnjB5AleQgZ\nkDwPwBuAa4JSwP8DPBR4CnBBVg0rGy0HNADTpto8vNbJxXN1HKa1jccJ0wLbFPGQloljz5EmZ560\nOYUWpc+0E5ptpY+zTmtbdNrcLCfpTldZaXVysZH3w/gBNDITsmbrVeZyyAEAyTMBXg98H3ADsAD8\nB/AoVf3XDNtWKsruBNjt6dQxydP4EGRFGuF/cWzzA0irWuFKsztRJsg8mHYCP7zWybWS2zDW2t2p\nq/+NYqXZLXQsytonqOixZluGHvp5eP+HjJMJ8DvAOzNsS2npdHuE0X9lTQSUxgtlYznSLDL4HVhp\nWRUOmGYt+L2HW5y2w65wwG4vHY/5/ct23Le8ImaWm51cHNb6kbUAcLjZ4cRMzzAcc12zSQlohQAg\nIper6iXB739KUAY4jqpelFHbSkNU7a9qBIJaDnmc0+Rwc/rJ28ZIgCxW67aEWYHJjZ+miWPvcpPT\ndtgVDmgiFKY/ji15HPJ6Tw6vFSMArLW7mTkAhqSdQXFcFmdriEAWaV/yzFkxTNT/duR3X/Z3CHFV\nW6enWJCJcyzSKOjTsSwlcFax1itNky8hz8Iggzi02k51sD0Y5NovKtFKP9Jy4ty/3LIij0NeZpZJ\nkialQR4hiEXXH6lVTZx+2n2tViTXVMfDzrQ98vu/qOrnsm5MWYl7J7e7PWsmwaQcSUEDAGbVYUvf\nj0zpOT6Mgyt2FJlJy/4f0usZoSKvOOQkpBWd0Or0ONws3lF1NaeJuSh/jtWUyhsPPUdBwk2Uxbn0\nBYDNs7VcBdRhS5hLIr//TdYNKTNxz/8yJgNKyy5pkxkgyxK+tpTQPbSajY+DLay2uqmuZG0ofLSW\nsQNg3ueJk8fk3O0pzU7RZoD0BcnFnFNWD9MAfEVEPoHJATAzqCJgWtUAReR84HeAKvBhVe3rcCgi\njwO+CLxIVT+RxrmnpRMzULbzSBSdImvtbmpCS9EZyKJkOZFlKVwkpdfLJtuaTaWP0068VHQxGdX8\nJq6iJsg8NAAAa61eoVUPsxAANs/m64A77GzPx2gBHgwI/SsCpjJriEgV+ADwVOBu4AYRuVpVv95n\nv98E/iGN86ZFfPIsmwYgzVV70fHHUbLMhrbc7NDu9qgX6Oy5tNbOpCjJ0qrJ6lixwA8g7fj9gyvt\nQu9bu6uZOI71o9PVQu5jXur51XaXLRRnztk8W0u9MFDe5qlhAsATVPUdACKykHFFwLOB21T19uB8\nVwEXYrQPUX4G+CvgcRm2ZWyOcwIsmQCQZljSaqtrhRPZSiv9UqRxDq60OWFzcRUQD2SUj6DbUw6v\nddiSYzhSP9KOcADjtX1gpcWJm4vx38g7Nr/V7TFbyXeVvJZTvoW1nDQNg6hUhM2z9dTSOteqwnxO\nCYBChonBH438/qyM23EK64sN3R1sO4qInIJJP/z7GbdlbNqxCb9VsmRAacbvqxafpAPyyRdetLYj\nS1X9wQx8C8ZvQ7oRDiF7DxfXt7wFgLwzk3Z7mrngHbJWsA8AwNYUbfbb5hu5R6gM0wB8V0QuxazC\nayLyZIwpYB05Rgf8NvAGVe2NukgicgmBE+Npp52WecPiGcZsyTiWlKXVdCfspbV24avHPJKtFFkC\nWTXb4j0HVto8eEdmh09EVul7i3RyzHtCzrs2SZ6r8qKcHKNsX2jwnX0rqR0rb4YJAK8AfgV4HdAA\nruizjwIPSaEd97Dex+DUYFuUXcBVweS/E7hARDqqelyEgqpeDlwOsGvXrszfuFa3G/tc/IOZlFan\nl/pLe2i13ddhJE/yyEpYZObDLKutgdEuFB0zn5WGY7VVXD2HvM2Dce1k1uQrAFigAZhvUK1IKhlg\nd2yySABQ1X8DzgMQkdtU9aEZtuMG4EwROQMz8b8IeEmsPWeEv4vIlcCn+03+RdCMrfjLVA8gCzV2\n0apxSCex0Sia7V5hWR+zNnGYgitdFnJMShKlm1GEQ8iBlRYnb5nL7PiD6OblARjQy/l8eS5+4uNu\nEVQrwvaFBnumTMe9MFMrpLhR0mJADwUQkQeJyBPSboSqdoBLgWsxJYY/pqo3i8irReTVaZ8vbY7z\nAbDgwUxKFmrslWa30JoInW4vt3uwUtAqJG2zTd9zFCjIHV5rZ+otX1RN+axT5MbJ2+SQdZGjKO1O\nD81ZwOnHiYvTOwIX5UycSOQQkQcBVwE/gFH7bxKR5wPnq+qr0miIql4DXBPb9qEB+74ijXOmQa+P\n00u5BIBsBsIjBXqR5xWHDLDW6haSWS6PyfnwWoeTt2R+mr5kPUGn5bk9LnmvyPOeIIuIcigyFwDA\nzk0zU4cDnpSCEDEJSXWXlwN/B2wGwjfnHzFx+xuafiqvbk9zd76ZlKw89tMoLjQpeaoGi1BDqmou\naV6LzOqYtYPlcsvkOsibvM+Y9wI5b58DG0Ku69UK2xcmn8DnZ6psLig9dVIB4GzgnaraI3iGVfUQ\nUND6wB4G2bzK4AjY7WlmBUPysMEPIl8BIP9+rrV7mSQAilNkxbWsNRy9XjEFZYpPrZQteWs48vap\nGMSJU6jwi8pJAckFgPuBdU6AIvII4M7UW1QyBnmi2hCiMoosB8AiV495mmCKuM95TVxr7WJ8OXo9\nzSWbXBHPaN5BFXmfL3cThyXD7M5NMxNf6yKTiSV1O3wP8GkR+Q1MToAXA78I9M3Xv5EY5PRSdKGK\nJGSZt7/ImgB5XvsiND15rsxXWp3c1ZOr7W4uqusiKspVRswS77r2G2Mf87KnnzXwu7wzco7qX+rn\nK74iNwCNWoXFufGzAtZrFRZzzv8fJdGZVfUKEdkH/B9Mxr6LgbfYEoZXJIM0ADaUqxxFlmr6Vsd4\n4jdq+b+heWoAinD4zFN1vdLqFiIA5EFW5q9h1Kr5TpB5CwCun28Y2+YbYwsA2wvI/hclseihqp8C\nPpVhW0rJoEGkiMFlXLJepa+0OjRq+Se3yNMTuYicD3lGORTxHOeV4KUIB87aiCXrsNX8JNRzXiLP\n5CzwFx0BEGXrBFFPW3Iu/xsn8d0SkVeKyOdE5Nbg/yyLA5WGQYOxDVmqRpH1SnK5ICEoT0/kIgSA\ntRyvaxGarLwm5mYB72g9Zw1A3hqHmRyzK9aqYpUGYJJSvotzxan/IXkegDcDFwG/BXwHUyL4MhF5\noKr+Wobts55BA6TtGoA8HK1WCvIDyDO8Kw9v/DhNxzUceQnPRRSTydsklvf5ZoecbxL/BhisFSki\nlfMwZmpV6rXKWMWQisq0GZL07K8CzlHV74QbRORa4AvAhhUAmp3BXtKtTs+KsriDyMPRqigNQP6x\n1vnlzFfVXLPJdQqQcPKKrOj1zDucpxo5z3OJQCPnNNVzOZaztU0AAFhoVDmYUABo1CrUC0gjHiWp\nALAA7Ilt2wfkn0zbIkatoIvwoE5KHo5kRWkA8kY1v3Cr/KvJ5R8GmGtBmVa+meSqFRl7lTgps/Vq\n7g5mw65l2v4Ns3VLQgAiGKEkmSNgnsLSIJJewc8AfyYiDxeRORE5C/gTTO7+DcuoFa7NkQB5hJKt\ntruFZFvLW+dSoBOvc6hqrgJAng6VIXM5rVyLWCFXK5Kb34FNDoAh40zqsxa0P6kAcClwGPgqcAS4\nCVgGfiajdpWCUSvcIpPhjCIPHwXVYgbYvCkyjMc1mp1erulri3DWnc9p5bepIPtyXn4HRYQYj2Kc\nKAgbNBhJqwEuqepFGJX/ycC8ql6kqgczbZ3ljJrgi0yHO4rVdj7CSRHOkHlOyLYkIsmKvPU3eSdW\nKsLHYRJv8UlYmClmhZmX30HeERVJGEfrYoMGI2kUwEXATar6VWB3sO3RwPer6p9m2D6rGTXBb3QN\nABSVbW3wd2l7IvvVf7rkXS437+I1kN/KfPNMMf5HtbwEAAul73EEgNJoAIBfxWQAjHIX8I50m1Me\n2t3eSPXhSkEVx0ahqrnV7S4i1CrPyIuqFwBSJe9c8nmfD2Axh+QvlUp+moY4ea3M6xaaAIaFQR63\nrwVOgEmfkEVgKbbtELA13eaUhyRldFWNt71tkQB5ZkArIlXusNCa1DOt5RzGY0nxs8zIW6MiBdTn\nq1crzM9UM3XE3TRTp1JQCHJe70TNwhDrWrWSOMojL2fQYSQVAL4OPA/4WGTbc4BbUm9RSUiq3j+8\nZp8AkKedtYiiSHlOyo2aXYNQ2iaOvAWOvMf0orTI2+YbrDRXMzx+cWNOXj4Aeec4SEqSXAB1C3IA\nQHIB4A3ANSLyQuB/MKWBnwJckFXDbOfQarJYz6W1Ng+0LF1CHjHIR89VgI11JkfbWt6OPK4XW8n7\nfKNy82fFtvkG9xzITgDYOp9/DY6QPN6/eq1SmIZjFPONGgdHFAVasED9D8mrAV4vIo8CXgI8CPgP\n4HWqGvcL2DAcTmACGGe/PMkzmUwRiWTyjH/O25GnWhEqlcEpiNM2ceSdS37UqihtDUdRauRtC9mt\n0EWK1QDkIRTnXXRoHJI4eW4qsARwlHGqAd4JvDPDtpSGdreXuJLe4bU2vZ5aJa3mKgAUEGY1jiPO\ntBQRylOrVGjldF3z9rTOXQNQUCjZTK3Kwkwtk4qci3P13Dzx+5GHUGyD/XwQSSb3hUbJBADPMZYS\nqv/BrNSW1tqFquTidIb4AKS9wup0Nddc+ZC3BiD/gahereTmXJl3spVRK/LUNRwFhpJtW6hnIgAU\nufoHk+FOJFv/ERvS6A4iiQZg0RK/MHv1KBZzcAwBAJL7C+RF3nb5vPPXu2wCgHwn5bwFABGhmuOq\nvCgNABg/gCwoerFRqUjmK/S8silOQqNWGToGiZTQBOA5xrgTum0CwKAKhpD+Cis8X54L5bwLruRN\nnkJHEbbWeqVCt5tP9EiRoWRbMsoHkNVxx2GuUc002di8JSr0QWyerQ3MEzPXqFpTJdZrAMZEVccy\nAYB9AkDedvm8NQCQjx9AtSqFhPLkKXQUYWvNNZFTgQPxbL2ausf8/EzVivCyrLMdFpXmOCnDVvi2\nqP8hoQAgImeIyJ+LyNdF5M7oT9YNtI0jzc7Ynu3Nds+qyoDDNACZnK+ASIA8bIRFOSLled4ibK0u\nmzjipD0Z2DK5ZKnirtcqVuTRH8awLIxFFWnqR9KW/Dkm/v/ngJXsmmM/o+I7B/7daou5hl35AFwm\nj0myKAEgL/thrSqFmDjyMjuIFJ9MZnGuzp7DzdSOZ4P6H7Kd5IpKcTwOw/pvi/0fkgsAjwSeqKr5\nx3RZxoGV1mR/t9zm5C1eAMiLXDQABTkibWrUMveyhuJWKnkJHbP1auHFnNKezGyZHDfN1Ibmq5iG\nRUv6OIy5urHz99O22qQBSCr+fgF4TJYNEZHzReRWEblNRN7Y5/uXishXReRrIvJvQTXCXFFVDkyo\nAZhUcPBMRh5OQkV5Ilcqkkv/ikphnZdgZUMoWfoCgB0aABHJzByRRzGlaRGRvs9XtSCt2iCSPn13\nAJ8Rkb8Gvhv9QlXfOm0jRKQKfAB4KnA3cIOIXK2qX4/s9m3gSap6QESeAVwOPH7ac4/Dcqs7sWf5\naqvLWrtrxc2v5F1wpQAtax5OQkVK8ptns0kiE6UoVeV8Tu+IDaFkM7Uqs/XqyMqiSViYqVnjXQ7G\nHDGpyXTUccvAQqN2XNE42xIYJR2aF4BPA3VMKuDw59SU2nE2cJuq3q6qLeAq4MLoDqr6b6p6IPj4\n7ymeOzEHp1zFZ/EylIG8BQ4wA2vW5UKLDEXKQ9VblDp5ISfBypZsbItz6bTDtolxSwYJieYbVesd\nAEPmGsePPzYInVGS1gJ4ZcbtOAWI1hW4m+Gr+/8N/H2mLerDtBP4gZUWD9gym1JrJifvVUJRi5LN\nszX2H8nG9DJbrxbqQZ619kHE+BoUQaOWvKTqNOQlaIxiy1yd3UvTOwKmJUikRRaJjopOcjQO/bS9\nNmiAoyR+YkTkTODFmMn6HuAvVPVbWTVsSDuejBEAfnjIPpcAlwCcdtppqZ17Wju+LX4AeSc/KSrd\n6mKGAkDRg23Wtt75Rq3Q+hWbZmoc6GT7vtjijJXWyt02DUC9WmHzbC3VgmjbF8ojAPTTVMxapr1I\nmgfgx4AvA2cB+4GHAzeKyLNTasc9GJNCyKnBtng7vh/4MHChqu4bdDBVvVxVd6nqrhNOOCGVBq60\nOjTb061IVppdmp3i8wHkXSikqGxrWcZEFx1v3ahVMi27WrQ3edbnb9QqhecACNk8W2daK1m1KtYI\nNFF2bJpJ9XilEgD6vJ+2PHMhSVvz65hJ9yWq+iZVfSnGRv/rKbXjBuDMIOFQA3gRcHV0BxE5Dfgk\n8HJV/WZK503M/uV0ViMHlov3A8hzQjblawsSADJcEdngieyygJO1AFC0gBOlWpGpNTqLs/XCQxr7\nsSPFCXtxrm7dBDqMfjkmbGt/0tacCvxLbNv1pOSIp6od4FLgWuAW4GOqerOIvFpEXh3s9lZgB/BB\nEblJRG5M49xJSUsA2LecXtKPSckzv3uRD3wWqVZDbIhFzlbAKVoDkK0AYku4XMjWKR3mpv37rNgy\nV0+tuNOOTeVZ/UM5BICkb/lNmCyAvxnZ9rPB9lRQ1WuAa2LbPhT5/VXAq9I63zioamoCQFrHmYaN\nlGp1y1yd3e10ha5Ns7VC662HZCWEiBQ/QS40qpklkgE7BLgo09rvt1qgkepHpSLsWGik4uS4cyFd\nc0LWVPoUJSuiuNYwkrbmp4FXici9IvIlEbkX42T309k1zR6W1sbP/z+IZruXefz2KPIMoyn6gd86\nl4Unsh2DbVYagE0WxJOLCJtmsrvORQs4caYVAGwwSQ0iDT+Aeq1SuFZqEqJagEoFKwo1RUkaBvgN\nEfle4IeAk4F7gS+pavEG7RxIe9W+f7lVaAhSnpNy0TG7WxfSHxizEComoV6tMD9TZaWZrmOpLZPJ\n5tna2JU3k1Cr9s/SViSz9SrzE5bQ3Txbs25iiZKGH8COhYaVPg6jmKlXCK2+japdzxyMUQ5YVTuq\n+i+q+jFVvX6jTP6QjQBQJJWK5Kaaz7N2fT82z9RSs0GG2KIBgGyc9WwJJ8tKELFt9R8yaeIc22Pj\nZ+vVqRc8ZfL+jxJdbGUZtTMpA1skIrdEfr8rXgZ4o5QD7vU09VXIgZUWmnUllxHklm+94MQXIpJq\nQpL5RtWqZB5ZTNa2aACystPbIuDEmfQ53WaRQDqIaR34yisAHBsrbMsBAMNNAD8V+f1lWTfEVpbW\n2n0rOk1Dp6scaXYKXYnM1ascInslzqwFqtZt83X2plRydZtlA1Ha6VZrVWHBgnsGx3wR0n7/bLUl\nTyoA2K4BANO3O/dNVkneNqF7HKIaUBs1AAPfBFW9PvLxRFX9eHwfEXl+Jq2yiEmr/43i4Eq7UAEg\nrxeqaA0ApDtpZ5HedBo2NdKdJBfn7IknFxG2zNdTz+Zoiw9HnLmGCVsdJ+HY/EyxKamTMo3ZrAwC\nziCi46yNGoCkT84fDdh+eVoNsZWs0vcWnRY4DxNArSpWOCel6Qdgk/0fjD9Hmita28LJ0m7PfMPu\nCXNc4cRWYSZOvVqZ2A/AtnduHKI+AEX7Q/Vj6B0RkYcEv1ZE5AwgOoo+BFjLqmE2oKocylADUCR5\nrMxtWP1DsJKcm34lOWepKnLrfCO1DJO2rbZMe5ZTO55tJpw4W+fr3L+UfFgt0+S4Za4+UQh0mfoY\nJ+oDUHREVD9GiWS3AYqZ+P8n9t13gbdl0CZrONzspG5/DGl1eqy0OoWVlF2Yyf5htKXaGpCKAGCr\n81haq+RKxb4+bpmrp5oQyDYTTpxxHTBtu1/D2Dpf596Dq2P9Tb1WKbTs9rQ0apWjz2+pfAAAVLUC\nICKfV9Un5dMke8hq9R9ycKVd2MM9U6tSq0pqCY76YVNxkjQGyqLz4w9i63wjlUlycbZeeAKgONWK\nsDhbT01jZvtqcvNMLfG9rFXFKiF7FJO8g2UScAZRr1Zo9npWmEPjJGrRRpz8AQ5lkIQkytJasWaA\nrAui2DQ4pTF52zoYVSuSSttsDbVKyyxRBm/ySiDwJMHW53EQCzM16mP6X5Stj/2oV40WwDbhGhJm\nAhSRGvAa4EnATiK+AKr6o9k0rXiynqCXVotNCbx5tp5pdUKbKq41ahXmGlVWJ8i0BiY//iaL+hNn\n+8LM1PfSVgFg23ydO1I4Ttohk1mxOJdM42FLvoZx2DpXZ88YIbllyHEwilpFqFXsW/1D8iiA9wH/\nB/gC8Fjgr4ATgc9l1K7C6fZ04skiKcvNTqEJgbKcoBu1inWrrWlWE5stVI9HmXbyrlXT0SJkwZa5\nOmlEJtpu/w9Jeh9svV/DGOceVMfQhthMtSK5lmAfh6QCwHOBZ6jq7wCd4P8fB56cWcsK5kizQ9Zz\nc7enE+X+TotM68lbODhNM2DaPtguzo6vXo2ybd7eXOu1aiWVnBllEQCSvpdlnBy3jVGbY3GuTsXS\niXMcqhWxth9JR4x54K7g91URmVfVbwCPyaZZxXMkp4p9eZ2nH/MN4wiYBTZOmNM4gNmuijQpjydv\no63q/5DtUxZ1mq1XrSsANIi5RnWkMDdneT6DQWwaww/A9mcyKRURKpYK10mfoFuAxwW/3wi8TUR+\nCbgnk1ZZQF4le4sUAML4+CywUQDYNFObWOApg/14mhWu7fHx067eyzaZjDLP2eRfMw7jCKrbS6Kx\nGYURAIpuRX+SCgCvA8KZ6meBHwR+DLgki0bZQF4CQNqlXMclC7WojfHkYAafSTzK5xtVK5N4xJl0\nEnPtf5IAAB4ESURBVK/XKlaFbPYjDHWclLIJAKPU+2VU/4ckGXOq1XQzXBZJpYK1JoBEV1hVb4j8\n/i3gvMxaZAl52eaXW8VGAmQhANgYTx4ySWEg27LjDWIhUB23O+MlBLDdvAFhqGODAxOW0h7H9mwD\noyohllUDAMkE1a0W1aSYlooItvZk4FMkIucmOYCqOhcJ0MshAiAkr/MMYvNs+hXXbJ4wJ2lbWSaP\nUL26e2k8AacsznHbFyYTADbN1kqhwYkyKuTU5pDUUSw0Richs1GDOCkVsTMHAAzXAAwqABRFMTUB\nnKI55gpqGro9pd0tLkuUKSZTn3hl1Q+bs61tnqDEbFkmSDDFYcYVAGy+X1G2zzeOy0ee6O9Kpv4H\nU0ejWhW6fSbJmXqldAJNFBEz5gxLze2WAGCvE+CwcsBn5NkQm2iNEADede03xj7mZU8/a+B3zU6x\naSK3zacnAIjYV1EuyrgCz2zd/uxxUbaOqa2oVcV6+3/I5tnawElxGGURcKKICJtnan0TApXlfg1j\ncXa4AFBkqfS0sVkASDzriEhdRH5ERF4YfF4QkYXsmlYcrW5+GgBgbJtt2qSpsl+YqVGzMOd1lHEm\nhLJNHuOWPt5SIltrZcKUx2UpmRtnkJq/zPb/kGF9mKlXShniOIhqRUppAjiKiHwfcDXQBE4F/hKT\nFvhi4IWZta4geiMyAA1bzWdxvqwJM62l0YwyqMvH0VCUTRUpYrKnJdVw2Oyv0Y9t842xqjpumq2V\ndjJZGFAobNNMuZ7JfgyrE+KChiNKpVL+MMDfB96qqmcBoU7q88APZ9Kqgsl7Qu4WLABUK5Kayq0M\nK+ZxshSWIf4/zjhCyyhvc9sYN2KhDALpIAatkvMo5Z018/XqwPTONhURS4Oq2KsBSCoAPBL4aPC7\nAqjqMjCXRaOKJssSuf1Iq9b5NKQVClaGFXO9WmE+wSBaqcCmEtYiHyd+2saUzcNYnK2PlQ+gDALp\nIAaVCi+qhHiaVCoy0LdmviQZG5NSqVB6H4A7MEWAjiIiZwO3pd0gG8hbA9CxQAJIQxU8P1Meh7kk\niVQ2z5YzF3nSJDFzjaqVNcqHMU65XCiHQDqIRq1yXObK2XrV2tXkuAxKzTxXkjEkKRUHNABvAf5O\nRN4ONETkTcDHgV/KrGUFkmJIfCIKtgAAZqU0rZBaJnVrMgGgnCut2froXPJQ3mxySSf1mbp9FSnH\nJb7aL0s9gyQMmuhd6iMYE4CtC4lEAoCqfho4HzgBY/t/MPBcVf2HtBoiIueLyK0icpuIvLHP9yIi\nvxt8/1UR+cG0zn3cubI6sMXUq5Wp1cE7ShRvnWRyL3MoUpL+lTWZjMvlcuPM1itDP5eZQcLZbIlz\nHPTD5loAI0cAEakCVwCXqOprsmhEcI4PAE8F7gZuEJGrVfXrkd2eAZwZ/Dwe45j4+Czak7e9xhbp\ncNt8g0N94o6TUiaP8iSTX5m9kRdnayO95cuq4UgqqJZVwxElPkmWXaMRpZ8GYKZesWY8TItS+wCo\nahd4GpClofps4DZVvV1VW8BVwIWxfS4EPqKGfwe2isjJWTQmqxK5g6jnfL5BTLOC31yycKt6tcLM\niNVUmQWAJKFiZRUAZuvJSuGWzcGxHzOxfsY/l5l+2gyXBJyQisjU5tWsSDoCvA94u4j8sqpOvkQc\nzCnAXZHPd3P86r7fPqcA9w078K233so555wzVmPa3V6uZXo3z9apWSL1Hlxpo4zvlDBbr5bOeedI\ns0N7QNKnSoalkvOg21OW1ga/qmXv37B7F7J1rmHtwJuUVqe3rmDYppla6Rw3B9FT5dDq+me0Ua04\nFwbYU6XbUyvvW9Ir/TPAA4CfFZE9cGyGUNXTsmjYNIjIJQSlimdmZsb++9xNABYNUrWq0J4gDNIW\nAWYcqiIMmiJt9dpNSrUiCDJQmCt7/2oVoT2kjlbV4lXXOMTHIltVyZPQry8u9a8MJBUAXpZpK+Ae\n4EGRz6cG28bdBwBVvRy4HGDXrl163XXXjdWYtXaX67+1d6y/mYZzHn6CNelz79i7zG27j4z1N5UK\nPOlhJ5ZuUrn7wArfuO9w3+8evGOeM0/anHOL0uXGO/b3zSUPcPrOBR564qacW5Qee480uenOgwO/\nf8CWWR51ypYcW5QNy80OX/yffUc///CZO51Sk//Lt/bQbB/T5DzspM2ctmO+wBalz1q7y2qrm6gM\nclokTe+d1AnwJzFOgOOVGUvODcCZInIGZlJ/EfCS2D5XA5eKyFUY88AhVR2q/p+UmVoltdS4o6hW\nxZrJHyYL5VucrZdu8ofhCVVcCEXaPFsfKACULQNgnFEOfmU2b0SJ+zo0LBor0mC2Xl0nAIzyyykj\nIlirjRo5CqhqV0QydQJU1Y6IXApcC1SBK1T1ZhF5dfD9h4BrgAswyYdWgFdm1R4Rk6VqtTVEx5gS\nttnNN8+OXy63TN7/UYZlHLPtvkzCsEiHMoc4gpkYZ+qVdZNHlLI6OMapVytUKiZbaL3mnod83KnR\ntRBAAAn+2YgtToCo6jWYST667UOR3xV4bRbn7sdGFQAqFWHL/PBSnXHSSiOcNzO1Y4NrHBfSrQ6a\nBGtVcUbD0Wz3V0q65EjWqFZZ63WdW/0DzMQmfFc1AJbO/4kzAf4M8AvAYRG5S0TuDH8ybFuh5BUC\nZuNANU61PJHyqltDTU+cSsWNhCubGrW+efNdWR1vGlDPYbZevhTHwwjNAGUKs01KXAPgopAjlNgE\nEJC1E6B15JUlzcbB2Kj0lxPtu2mmZpUPw7jMN2qsNNdrembr1cRONDZTqQjzjRpH1taHtJZd/R8y\nsFiOA9XyooR5QlycHKMr/oaDJg4wCw1be5Vo9lHVz2fdENvIa2K2UQBYnK0ldoIsY7ncKP38AFxQ\n/4dsmjleALBR6zQJCwPu06DtZSXUZtRrtk4jkxM1Abio4bCdRFdcROoi8nYRuV1E1oL/3y4i5fT+\nSsAg9Wma1Kpi5WRTGyMZR1nV/yH9fDBs88uYhn73sYwljvsxaKXvWjnZUACoZT0gFUB00ncpy2EU\nm8W2pFf8XcB5wKuBRwf/nwv8ZkbtKpxKRTJXldqcqnSjFFzp5wPglADQZzJ0wQEQzMTYL223awJA\nGGJbxmRbo4iaNVzWANhqUky6FHgB8GhVDTNS3Coi/wl8BXh9Ji2zgMXZ+lTFcZIc31YW5+rcc2B1\n6D62ajDGod9kONtwZyCajfWvWhWnBtq5epXD3fUmDlcEnJDQByDvGiV5UK/K0UgcVzUANpP0ig96\n8tx7IiNkvbq1efWcpG02azCS4roJwPU4674CnGN9PKYBcG+CFJGjJo5G1a37FmLp4h9ILgB8HPhb\nEXm6iHyviJwP/A3wseyaVjxbM3Zwy/r407DQqI7M7mezAJOUakWoxydJhwSARpBIJsS1OOu4un+2\nXnXOkzyc+MuYbTMJLjs5htjas6SjwWXAPwEfAL4M/B7wz8AbMmqXFczWq5mpEzfN2l3VS0RYnBuu\n3rfZhDEO0VVytSJW35dxEZF1KyvXQsniwtqcQ+abkFCAc1UAOJrnwLFnM0QsLkyVNAywBbw1+NlQ\nbJtvsNoabgufhO05FoaYlMXZOgeWB/tAjBIQysJsvXo0VM5FO2SjVmEtKJ3nQoKjKHFzjUvamxDX\nNQCNoxoAt57NMjD0iovIE0XknQO+e6eIPCGbZtnDzs3ZTNQ7N41fpjhvhkVBNGqV49J4lpXoysM1\nFTmsF2pcs7MepwFwUABwOQoAIiYAB30cQmxNBTTqiv8i8IUB330eeHO6zbGPHQszqecDqFZlrHS7\nRTEsG2JemRLzIDrpuyLURIn2z2sAykc48buqAQijG+oORjmE2GoCGDUa/ACmQl8//hF4bLrNsY9q\nRVKvdrdzYaYUjkrz9erAB3ezI9nkwP1YZJezrVViTpwumnCqjgsA9Yopv17mlOJlZdQVXwQGzX51\nYHO6zbGTE1JW12dlVkibSmVw1bh5hwSA6KThkgNgyPpsa+6tkKP3z0UNwFEBwNZl5JTUquKscBNi\n660bNdp9A3jagO+eFnzvPGnb63cs2G//Dxmcb92dgbbuuAYgqlp1Uc26zsfBwftXFZMspwxaw0mo\nORZ504+KpRLAqKv+PuAPROS5IlIBEJGKiDwX+BDw3qwbaANzjWpqFca2zNdLNUgNSqvqUra1xjoN\ngJ0v6jTMBI5/lYqbatZw8qhU3NTgVCpC1WEHuWpFrJ0g08LW53KoHldV/1xEHgD8CTAjInuBnUAT\n+GVV/Ysc2mgFJ2ya4TvNlamPUwbv/yj9JvpqVZxSJa/TAFj6ok5DmGDF1kFoWkINgKv9AzcF05Bq\nRZxMc1wGRhpyVfW9IvJh4IeAHcA+4IuqupR142zihM0zfGff9ALACZvLJQD0y/U/75iddb2K3L1J\nJIwjdzGVLETCyBy8dyEuCqYhlQ2gAbCVpImAlhgcDbAh2DJnVPetTm/iY8w3qmwqmfNcPxOAK/Xk\nQ0TMCqTTVSdXImEYmauryPoG0AC4aLoJqYjgqHuD9bj7VKWMiEy9ei/b6h+MV3XcQ9cl+39IuDp2\nMRmJsSGLs5NIKNi4vEp2NQkQBE6OXgNQCO6+MRmwEQUAOH7Cd63eOphQJKc9ravi7CTS2ADFZMrk\nODwuIvZ6ybuOu09VBmyfb1CdUI1ar1VKWz0vnm3NxXSrtQ3gae2ieQOOqcdd9XEAtzUAIvbGybuO\nu29MBlQqwo4Ji/js3NRASvqUxzUAriZbqTs8yNarFWcnEdd9HMBt4abiTQCF4e5TlRGTqvHLqv4H\nmI2E/FUqbqZbrVcrTmcjqzqs4QgFAFd9HICJNY9loGJxuVzXcfeNyYhJsvhVKsZ8UFaiBWQa1Wpp\nNRnDcFlFDsbRylUNgOupcsFxEwDeB6AovAAwJo1aha3z49nyt803Sr06WZdL3rFqciG1ijitZq1W\nxFkHRxEJNBxu9g/cniBNHoCiW7ExcXfEy5AdY2bzK1v2vzjrqsmVWJAZxkaYQFxeIbt+/1zuG7gb\nfWM7bo7mGbNj03jq/HH3t42G48VWwDhZuTzIGg1A0a3IDtcFHIcfTcBt843NFD4kiMh2EflHEflW\n8P+2Pvs8SET+WUS+LiI3i8jrimhryOaZWuKJcL5R7ZtOt0xEV1euCgCVitt21mrF7UHW5HAouhXZ\n4aLfTRSXhW+bseGVeSPwWVU9E/hs8DlOB/g5VX0E8ATgtSLyiBzbuA4RYXvCcMDtJV/9h4RpVl02\nAbishnQ91KoqbpsAHL51gDcBFIUNo/mFmGqDBP//eHwHVb1PVf8z+P0wcAtwSm4t7ENSu/4kUQM2\nEsZYu5pv3fV0pBVxW8DZCCVlXcbhR9NqbBjNT1LV+4LfvwucNGxnETkdeAzwpSH7XCIiN4rIjXv2\n7EmrnevYtjA6EkAEto0ZMWArxwquuPmmivM2ZLc9rSuOOwG62zODF96KIRfjtIj8E/CAPl+9OfpB\nVVVEdMhxNgF/Bfy/YeWIVfVy4HKAXbt2DTzeNMzUqszPVFlpdgfuszhXL3X4X5Rj+dbd6E+ciuPp\nSCsVtwdZ1zU4ruNvXTHkIgCo6nmDvhOR+0XkZFW9T0ROBnYP2K+Omfz/TFU/mVFTx2LbfIOV5uqQ\n791Y/QNHk+S4WC0P3FeRi+MTpOthgK47Abr8bNqMDaP51cDFwe8XA5+K7yDm6f8j4BZVfW+ObRvK\nqIRAiyUt/tOPMEmOq9nynFeRO67hcPW53Ch4AaAYbBAA3gk8VUS+BZwXfEZEHigi1wT7PBF4OXCu\niNwU/FxQTHOPMaq6X1mr//UjtP27GionjqvIXc+37nIWR9gIPgBFt2BjUniAuqruA57SZ/u9wAXB\n79dj4Tsw36hRqwqd7vFuBnON6roMemWnVq1Qq4qzqsiKiH0PWIq4nm/dVcE0xOFbB4Dbb5+9uC02\n58CgVf7irDurf4B6RZwNAQQzQboq3AAgFkrQKeKy/R/cnyDF3aHFavxln5JBdv7FucKVK6niupOV\n+z4A7mpvYAMIAG53z3Hxxl68ADAlm2f7T/SbHdMA1KoVp9WsIm5rAAS3B1nXBQDXcdk8ZTNeAJiS\nzTP9J/pNM+5pANwOk3PbEUkcdwJ0uW8bAX//isELAFMy16hSjYUgzdQrzhXNqTqeKc91G2vFcQ2H\n6ytIx7vnKQi3ZqmCWIhV+yt79b9+iLitZnXfBOBu38B9AcB1/P0rBi8ApMB8Y32438KMO+F/IdWK\n4ypk3F5lue5l7bBsCrgvwHmKwfFhIR8WYvb+uEbABVwvJysbIA+Ay7isvfF4ssILACmwENMAxDUC\nLlBx3QRQdAMyxmXhDdzW3oDvnycbvACQAnPHCQDuaQBcLyYDbq8iHe4a4L6A4zpu69/sxQsAKTBX\nPyYAiMBs3c3L6rQGwPFMea4PsG73zv3+eYrBzZkqZ8I8+QCz9aqzK0m3EwE57uTocN9gI/TP7Q46\n3j1r8QJASswGWoAZx+L/o7icCAjcXyW7jL93Hs/4uDtb5Uw48btUATCOyxoAcHsV4nLfYAP0r+gG\nZIzr/bMVLwCkRDjxzzhq/wf3B1mX8SvkcuP6u+e6icNW3J2tciac+F02AbicCth1XL917vfP8Q56\nCsHd2SpnGlX3TQAuRwGA+5OIy3gNR7nxd68YvACQEuHKv15191F2fZB1uX/u9szghTePZ3y8AJAS\n9UADUHfYBOB6PnmXJxHXVchu987jyQbHh/T8CPMAuOwp727PPB6PZ+PhBYCUqFUq6/53EdfTrbrd\nO7dxXcPhOv72FYO7s1XOhA5yTmsA3O2a8/hb5/F44ngBICVqFaFScTtbnstOcuBXkWXG3zmPZ3y8\nAJASlYocdQR0FdfnR8e75/F4POtwe8bKGdcFAI/H4/G4g5+xUqThcAgguK8B8Hg8no2E2zNWzjQc\n1wC47gPgMl5483g8cQqfsURku4j8o4h8K/h/25B9qyLyXyLy6TzbmBTXTQB+EvF4PB53sGHGeiPw\nWVU9E/hs8HkQrwNuyaVVE1BzOA0wuO8k5wWc8uLvncczPjYIABcCfxL8/ifAj/fbSUROBZ4JfDin\ndo2NyzkAPB6PJytUi27BxsQGAeAkVb0v+P27wEkD9vtt4DKgl0urJsD9anlu98/j8Xg2ErU8TiIi\n/wQ8oM9Xb45+UFUVkeNkQRF5FrBbVb8sIuckON8lwCUAp5122kRtngSX0wB7PB5PVvi1RTHkIgCo\n6nmDvhOR+0XkZFW9T0ROBnb32e2JwLNF5AJgFlgUkY+q6ssGnO9y4HKAXbt25aZc8vO/x1a89sZj\nM/75LAYbpqyrgYuD3y8GPhXfQVXfpKqnqurpwIuAzw2a/Iuk6vhD7HbvPB6PZ2NhgwDwTuCpIvIt\n4LzgMyLyQBG5ptCWjYnrPgAej8fjcYdcTADDUNV9wFP6bL8XuKDP9uuA6zJv2AR4NZbHUwz+3fN4\nxscGDYAzeAWAx+PxeMqCFwBSpOJXIR6Px+MpCV4ASBHX53/X++fxeDwbCS8ApIjXAJQbb0f2eDwb\nCS8AeDwej8ezAfECQIr4BaTH4/F4yoIXAFJEfKocj8fj8ZQELwCkiNcAeDwej6cseAHAkxjvJOfx\neDzu4AWAFPHTo8fj8XjKghcAUsSvkD0ej8dTFrwA4PF4PB7PBsQLACni1/8ej8fjKQuiqkW3IVNE\nZA/wnZxOtxPYm9O5isD3r9z4/pUXl/sGvn9p82BVPWHUTs4LAHkiIjeq6q6i25EVvn/lxvevvLjc\nN/D9KwpvAvB4PB6PZwPiBQCPx+PxeDYgXgBIl8uLbkDG+P6VG9+/8uJy38D3rxC8D4DH4/F4PBsQ\nrwHweDwej2cD4gWAnBGRHSLyzyJyRETeX3R70kZEnioiXxaRrwX/n1t0m9JERM4WkZuCn6+IyHOK\nblPaiMhpwfP580W3JU1E5HQRWY3cvw8V3aY4IvJ/ReQWEfmzAd83RORyEfmmiHxDRJ6XdxunYVj/\nRGRz5N7cJCJ7ReS3i2jnpCS4fy8OxsavishnRGRn3m1c1x5vAsgXEVkAHgM8CniUql5acJNSRUQe\nA9yvqveKyKOAa1X1lKLblRYiMg+0VLUjIicDXwEeqKqdgpuWGiLyCUCBL6nqe4puT1qIyOnAp1X1\nUQU3ZSAi8g3gPFW9e8D3bweqqvpLIlIBtqtqaeLnR/Uvtu+Xgder6heyb1k6DOufiNSAe4FHqOpe\nEXkXsKKqb8u5mUfxGoABiMhFgZT2FRH502D18Llg22dF5LRgvytF5HdF5N9E5HYReX6w/SoReWbk\neFeKyPNVdVlVrwfWCupa2J6s+vdfqnpvsPlmYE5EZhzq30pksp/FTJRO9C34/ceBb2PuXSFk2T+b\nEaOReAjw9yLyFhH548hqMVzp/yTwGwCq2ivZ5J+kf+G+DwNOBP6liLZOQoL+SfCzICICLGIEguJQ\nVf8T+wEeCXwT2Bl83g78LXBx8Pkngb8Jfr+S/9/evYVYVcVxHP/+sskLZjNaFiiOZpaXKNEHKZgQ\nKuwl0tJuYhlEFBGEBUZJ+VJUSPogFPTgrRIViq5I2RUrKQyRyIdUBjO6eCnMUov697DWydNxcGbs\nnLOnc34f2Mw6e+/Z8/+fDbP/e619zoINpGJqIrAzr58FrMrtM4BvgIFlf2M+sLxR88vrZwObGi0/\nYBrpAnkYmNUouQGDgU/zz8XAg4107oDRwK/ANuBDoKPe+fUg/07St8Y9BSwrW98GtOZcngG+yLmf\nW3TM1cqvYr9HgSVFx1vt/PL/xEPAd8BHpN6c4uIt+g3riwtwH/B4xbr9QEtutwD7c3slMLdsv1/y\nzwHAHqA/cB3wYsXx5lNcAVCP/CYBu4CxjZhf3mcC8BkwoBFyA5YAN+b2YoopAGqZX39gWG5PJV1M\nh9Q7x27y7yRdQLYC4yq2nU3qcZqdXy8A1hQdc7Xyq9jvK2Bq0fFW+fy1AO8CY0k9AcuBRUXG6yGA\n6jhW1hZARBwFPgBmADcB6+ofVtX0Kj9JI4FXgNsiYlf9wjxlp3T+ImIHqRegz44p07vcpgFPS+oE\n7gceltTXn1HpcX4RcSwiDuT2VlKBemE9g/2PDgC/AS/n1xuAKcWFUxuSLgVOz+eokUwGiIhdkSqC\n9cDlRQbkAqBr7wFzJA0DkDQU+AS4OW+fS8/GptYBdwAdwMYaxHmqapafpFbgTeChiPi4ynH3VC3z\nG5Mf5kFSOzCeVPXXS81yi4iOiBgdEaOBZcATEVHvT6rU8tydI6lfbp8PjAN2VzX66nkHuLf0QlJb\nvmi8DkzPq68k3Sn/H52QX9m2W4C1dY+ourrK71tgoqTSJD1XAzsKiO24ortM+uoC3A58SXrKeyXQ\nTvrntJ3UjTMq77eS3CWXXx+u6PI5CKyoOHZnXn8Y2Et6KrQh8gMWcXyctbQMb6D85pHG/7eRxmFn\nNkpuFX9jMQUMAdT43N1Qce6uLSK/bnLvJHUhDwZWlb0P1+ft7aSx43+9F/+Xpbv88j67gfFFx1qj\n83c36aK/nVTMDSsyXn8M0MzMrAl5CMDMzKwJuQAwMzNrQi4AzMzMmpALADMzsybkAsDMzKwJuQAw\nMzNrQi4AzKxLkjolXVV0HGZWGy4AzKzPKX3bopnVjgsAM+sxSW2S3pC0T9JPuT0yb5ujNId7+f4L\nJL2a2/0lLZG0R9IPkp6TNDBvmy5pr6SFkr4HVtQ9ObMm4wLAzHrjNNLFuR0YBRwhzWoG8BowRtKE\nsv3nAatz+0nS5DuTgQuAEaRpX0vOI03/2w7cVaP4zSzzVwGbWZfyrIB3RsSmk+wzGXg/Itry62eB\ngxHxiKRJwGbShf130twXl0SeIVLSZcBLETFG0nTgbdL0vEdrmJaZZR5nM7MekzQIWApcA5RmcDtT\nUr+I+JM0AcpaSYtId//rI+KYpOHAIGCrpH8OB/QrO/w+X/zN6sdDAGbWGw8AFwHTImIIcEVeL4CI\n2EK62+8AbgXW5O37ScMFkyKiNS9nRcTgsmO7O9KsjlwAmNnJtEgaUFpId/1HgJ8lDQUe6+J3VpOe\nC/gjIjYDRMRfwPPA0twbgKQRkmbUJQszO4ELADM7mbdIF/zS0goMJN3RbwE2dvE7a4CLgRcq1i8E\ndgJbJB0CNpF6E8ysAH4I0MyqKn+070dgSkR8XXQ8ZtY19wCYWbXdA3zui79Z3+ZPAZhZ1eSPDgqY\nWXAoZtYNDwGYmZk1IQ8BmJmZNSEXAGZmZk3IBYCZmVkTcgFgZmbWhFwAmJmZNSEXAGZmZk3ob3gg\nSz/BXQxwAAAAAElFTkSuQmCC\n", 93 | "text/plain": [ 94 | "" 95 | ] 96 | }, 97 | "metadata": {}, 98 | "output_type": "display_data" 99 | } 100 | ], 101 | "source": [ 102 | "# Figure 2a ( Feature decoding accuracy )\n", 103 | "# This takes 20sec for AlexNet and 10min for VGG19\n", 104 | "acc_each_layer = []\n", 105 | "acc_mean = []\n", 106 | "for layer in layers:\n", 107 | " data = acc_data[layer]\n", 108 | " d = [ d_each_subj.flatten() for d_each_subj in data ]\n", 109 | " stacked_d = np.hstack(d)\n", 110 | " stacked_d = stacked_d[np.isnan(stacked_d)==False]\n", 111 | " acc_each_layer.append(stacked_d)\n", 112 | " acc_mean.append(np.mean(stacked_d))\n", 113 | " \n", 114 | "# plot \n", 115 | "fig = plt.figure(figsize=(n_layers,5))\n", 116 | "plt.xlim( [-0.5, n_layers-0.5])\n", 117 | "plt.ylim( [-0.5, 1.0])\n", 118 | "plt.hlines(0.0, -0.5, n_layers-0.5)\n", 119 | "\n", 120 | "plt.violinplot(acc_each_layer, range(n_layers), showmeans=True, showextrema=False)\n", 121 | "plt.bar(range(n_layers), acc_mean, tick_label=layers, width=0.0)\n", 122 | "\n", 123 | "plt.title('Feature decoding accuracy (decodability): ' + net, fontsize=15)\n", 124 | "plt.xlabel('Layer', fontsize=12)\n", 125 | "plt.ylabel('Correlation coefficient', fontsize=12)\n", 126 | "plt.show() " 127 | ] 128 | }, 129 | { 130 | "cell_type": "code", 131 | "execution_count": 4, 132 | "metadata": {}, 133 | "outputs": [ 134 | { 135 | "data": { 136 | "image/png": "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\nS5xSKqpQ8LVPPvmEyZMna/A1pVLM6tWradeuHQUFBcyePZvTTjst0PRoH1mlEqC0tJSrr76aMWPG\ncM899/Dvf/876CQpVeM0bx5+enFxMRdddBHTpk1jxIgRXHHFFclNnFIqos2bN9OlSxc++ugjJk6c\nSPfu3YNOklLKpbCwcGfwtenTp3PmmWcGnSQtyCpVVcYYrrvuOkaPHs2dd97JkCFDgk6SUjVKKMBT\nQQGIlP+sYUO4//4d9O7dm6lTp/L0009z9dVXB5JOpZS/oqIizjnnHD744AMmTJigwdeUSjGh4GuL\nFy9m2rRpKRN8TZsWK1UFxhhuuukmRowYwa233sqwYcMQ7520UqraeAM8GWMLs8ZAVhYMHVrC7NmX\nMnnyZB5//HGuu+66YBOslConFHwtPz+fl19+mYsuuijoJCmlXNatW0eHDh345ptveOutt2jfvn3Q\nSdpJC7IpasqUKUEnQUVhjOHWW2/lqaee4sYbb+Thhx/WQmwNonk0ODk5NoDT8uV2mJ2SkvKfhwqx\nP/1UwmWXXcbEiRN5+OGHufnmm4NJsAqE5tHUt23bNrp37868efMYM2YMffr0CTpJKok0j6a+UPC1\nL7/8kjfeeIOzzz476CSVowXZFNWsWbOgk6AiMMZw11138fjjj3PttdfyxBNPaCG2htE8GgxvDay3\nEBtSUFDKFVdcwfjx43nggQe47bbbkpdIlRI0j6a27du3c8EFF/D222/zwgsv0L9//6CTpJJM82hq\nCwVf++yzz5g8eTJdu3YNOkkVaEE2RY0bNw5AT+wp6t577+U///kPV111FU8//bQWYmsgzaPB8Bti\np6JSGje+irFjx3LvvfcyePDgZCRNpRjNo6mruLiYXr16MWPGDEaOHMmAAQOCTpIKgObR1OUOvjZp\n0iTOO++8oJPkSwuyKUozd+q6//77GTp0KAMGDOC5557TQmwNpXk0GOGG2CljqFPnWjZteoHBgwdz\n7733JiNZKgVpHk1NO3bs4JJLLuHNN9/kmWee4aqrrgo6SSogmkdTU1FREd26deODDz7glVdeoUeP\nHkEnKSyNWqxUHB566CHuvfde+vXrx6hRo6hVS7OQUskUboid2rUBDLvueiM7doyka9fbGD9+KLVr\nCy1a2CbJSqlg7dixg759+zJlyhSeeOIJrr322qCTpJRyCQVfmz9/Pi+//DK9evUKOkkR6V24UjF6\n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\ndtC1a1d2797NihUr6NSpU6ybFDTKRhWhUmsc2aqqKoYOHcpbb73Fv/71L+69996I33P8eM/QYAis\n7I2VI9yyZcvwNFKhiBPKysq45pprWLlyJbNmzWLgwIGxblJIKBtV1DZ08bV169bx3nvv0bNnz6jc\n12599kBRNqqobezatYvU1FR27NjB8uXLueSSS2LdpJBQNqoIlVoRWlxdXc2tt95KTk4OTz/9NA8+\n+GBU7puREVrZGzPhKN0Rnj17NrNnzw57mxWKWFBeXs6AAQP48MMPef311xk8eHCsmxQyykYVtYlD\nhw7Rq1cvvv76a95991169+4dtXuPGhWZNBtlo4raxJ49e0hNTWXLli3k5+fTuXPnWDcpZJSNKkKl\nxq/IVldXM2LECGbPns24ceMYG+UE01DK3hiFo7zDqbp0mQ3AkCFDwtJOhSJWVFRUcMMNN7B06VKm\nTJnCLbfcEusmhQW981U2qqjp6OJrX375JfPmzePqq6+O2r3z8qCkxHxfqPXZlY0qagvFxcWkpaWx\nadMm8vPz+cc//hHrJoUFZaOKUKnRjqymadx55528/vrrjB07lnHjxsW6SQGj6r8qajOVlZXcfPPN\nvP/++7zyyiuMGDEi1k1SKBQGSktL6dOnD59++ilz586lf//+Ub2/1dyzXb0JhaI2s3fvXrp3786v\nv/7K0qVL6dKlS6ybpFDEDTXWkdU0jVGjRjFlyhQefPBBnnrqKRwyGWGFQhF1KisryczMZP78+bz0\n0kvceeedsW6SQqEwcPToUa6++mpWr15NTk4ON9xwQ9TbYLXqaldvQqGorejia+vXr2fx4sWkpaXF\nukkKRVxRI3NkNU3j/vvv55VXXuGee+5h4sSJyolVKOIIXXzt7bff5tlnn2X06NGxbpJCoTBw7Ngx\nrr32WgoKCpg1axYZMQoNkq26Op0qWklRtzlw4AA9evTgu+++Y+HChfTo0SPWTVIo4o4a58hqmsbD\nDz/Miy++yF133cULL7ygnFiFIo7Qxddyc3N55plneOCBB2LdJIVCYaCsrCxuxNdkooeTJsWmPQpF\nPKCLr33zzTfMnz+f9PT0WDdJoYhLalRosaZpPPbYYzz77LNkZWUxadKkWuvE5ufnx7oJCkXAVFdX\nc/vttzN79myeeOIJHnnkkVg3KWIoG1XURHTxtQ8++ICpU6fGXHzNSvQwVJSNKmoihw8fJj09na++\n+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\n", 137 | "text/plain": [ 138 | "" 139 | ] 140 | }, 141 | "metadata": {}, 142 | "output_type": "display_data" 143 | } 144 | ], 145 | "source": [ 146 | "# Figure 2b ( Scatterplots of unit decoding accuracy across two subjects )\n", 147 | "plot_range = [ -0.5, 1.0]\n", 148 | "n_feature = 1000 # number of features to be plotted\n", 149 | "\n", 150 | "idx_sbj1 = 0 # Subject 1\n", 151 | "idx_sbj2 = 1 # subject 2\n", 152 | "\n", 153 | "plt.figure(figsize=(16,8))\n", 154 | "plt.suptitle('Scatterplots of unit decoding accuracy across ' + \n", 155 | " 'Subject' + str(idx_sbj1+1) + ' vs. ' +\n", 156 | " 'Subject' + str(idx_sbj2+1) + ' ( ' + net + ' )', fontsize=15)\n", 157 | "\n", 158 | "idx_subplot = 0\n", 159 | "sub_shape = [2,4] if net == 'AlexNet' else [3,7]\n", 160 | "for layer in layers:\n", 161 | " s1_acc = acc_data[layer][idx_sbj1].flatten() # acc for S1\n", 162 | " s2_acc = acc_data[layer][idx_sbj2].flatten() # acc for S2\n", 163 | " \n", 164 | " idx_feature = np.random.permutation(s1_acc.shape[0])\n", 165 | " idx_feature = idx_feature[0:n_feature] if len(idx_feature) > n_feature else idx_feature\n", 166 | " \n", 167 | " idx_subplot += 1\n", 168 | " plt.subplot(sub_shape[0], sub_shape[1], idx_subplot)\n", 169 | " plt.scatter(s1_acc[idx_feature], s2_acc[idx_feature],zorder=0, c='b')\n", 170 | " plt.hist2d(s1_acc[idx_feature], s2_acc[idx_feature], \n", 171 | " cmin=2.5, cmap=cm.jet,\n", 172 | " bins=[ np.linspace( plot_range[0], plot_range[1], 30),np.linspace( plot_range[0], plot_range[1],30)],\n", 173 | " zorder=1 )\n", 174 | " \n", 175 | " plt.plot( plot_range, plot_range, 'k')\n", 176 | " plt.vlines(0.0, plot_range[0], plot_range[1], linestyles='dashed')\n", 177 | " plt.hlines(0.0, plot_range[0], plot_range[1], linestyles='dashed')\n", 178 | " \n", 179 | " plt.xticks([-0.5, 0, 0.5, 1])\n", 180 | " plt.yticks([-0.5, 0, 0.5, 1])\n", 181 | " plt.title(layer)\n", 182 | " \n", 183 | "plt.show()" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": 5, 189 | "metadata": {}, 190 | "outputs": [ 191 | { 192 | "data": { 193 | "image/png": "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\n", 194 | "text/plain": [ 195 | "" 196 | ] 197 | }, 198 | "metadata": {}, 199 | "output_type": "display_data" 200 | } 201 | ], 202 | "source": [ 203 | "# Figure 2c ( Pearson correlation coefficients between decoding accuracy among subjects )\n", 204 | "data = []\n", 205 | "mean_data = []\n", 206 | "n_subject = len(subjects)\n", 207 | "for layer in layers:\n", 208 | " acc_flat = np.array([ acc.flatten() for acc in acc_data[layer] ])\n", 209 | " corr = np.corrcoef(acc_flat)\n", 210 | " non_diag_elements = np.array([ corr[i,j] for i in range(n_subject) for j in range(i+1,n_subject) ])\n", 211 | " data.append( non_diag_elements )\n", 212 | " corr_mean = non_diag_elements.mean()\n", 213 | " mean_data.append(corr_mean)\n", 214 | " \n", 215 | "fig = plt.figure(figsize=(n_layers,5))\n", 216 | "plt.bar( range(n_layers), mean_data, tick_label=layers, align='center',zorder=1)\n", 217 | "beeswarm.beeswarm(data, method=\"swarm\", ax=fig.axes[0], s= 1, col='red',zorder=2 )\n", 218 | "\n", 219 | "plt.hlines(0.0, -1.0,n_layers)\n", 220 | "\n", 221 | "plt.xlim( [-1.0, n_layers])\n", 222 | "plt.ylim( [ -0.2, 1.0 ])\n", 223 | "plt.title('Pearson correlation coefficients between decoding accuracy among subjects: ' + net, fontsize=15)\n", 224 | "plt.xlabel('Layer', fontsize=12)\n", 225 | "plt.ylabel('Correlation coefficient', fontsize=12)\n", 226 | "\n", 227 | "plt.show()" 228 | ] 229 | }, 230 | { 231 | "cell_type": "code", 232 | "execution_count": null, 233 | "metadata": { 234 | "collapsed": true 235 | }, 236 | "outputs": [], 237 | "source": [] 238 | } 239 | ], 240 | "metadata": { 241 | "kernelspec": { 242 | "display_name": "Python 2", 243 | "language": "python", 244 | "name": "python2" 245 | }, 246 | "language_info": { 247 | "codemirror_mode": { 248 | "name": "ipython", 249 | "version": 2 250 | }, 251 | "file_extension": ".py", 252 | "mimetype": "text/x-python", 253 | "name": "python", 254 | "nbconvert_exporter": "python", 255 | "pygments_lexer": "ipython2", 256 | "version": "2.7.13" 257 | } 258 | }, 259 | "nbformat": 4, 260 | "nbformat_minor": 2 261 | } 262 | -------------------------------------------------------------------------------- /demo_handshape.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "# Download data\n", 10 | "\n", 11 | "\n", 12 | "import bdds\n", 13 | "\n", 14 | "\n", 15 | "ds = bdds.HandShapeDecoding('./data/handshape')\n", 16 | "dat = ds.get(subject='S1')" 17 | ] 18 | }, 19 | { 20 | "cell_type": "code", 21 | "execution_count": null, 22 | "metadata": {}, 23 | "outputs": [], 24 | "source": [ 25 | "# Brain decoding example\n", 26 | "\n", 27 | "\n", 28 | "from sklearn.svm import SVC\n", 29 | "from sklearn.metrics import accuracy_score\n", 30 | "\n", 31 | "import bdpy\n", 32 | "import bdpy.ml\n", 33 | "\n", 34 | "\n", 35 | "x = dat.select('M1')\n", 36 | "y = dat.select('Label')\n", 37 | "runs = dat.select('Run')\n", 38 | "\n", 39 | "cvindex = bdpy.ml.cvindex_groupwise(runs)\n", 40 | "\n", 41 | "pred_accuracy = []\n", 42 | "\n", 43 | "for train_ind, test_ind in cvindex:\n", 44 | " x_train = x[train_ind, :]\n", 45 | " x_test = x[test_ind, :]\n", 46 | " y_train = y[train_ind, :].flatten()\n", 47 | " y_test = y[test_ind, :].flatten()\n", 48 | " \n", 49 | " x_mean = np.mean(x_train, axis=0)\n", 50 | " x_std = np.std(x_train, axis=0)\n", 51 | " \n", 52 | " x_train = (x_train - x_mean) / x_std\n", 53 | " x_test = (x_test - x_mean) / x_std\n", 54 | "\n", 55 | " model = SVC(kernel='linear')\n", 56 | " \n", 57 | " model.fit(x_train, y_train)\n", 58 | " \n", 59 | " y_pred = model.predict(x_test)\n", 60 | " y_true = y_test\n", 61 | " \n", 62 | " acc = accuracy_score(y_true, y_pred)\n", 63 | " pred_accuracy.append(acc)\n", 64 | "\n", 65 | "print('Classification accuracy: %f' % np.mean(pred_accuracy)) # => 0.816667" 66 | ] 67 | } 68 | ], 69 | "metadata": { 70 | "kernelspec": { 71 | "display_name": "Python 2", 72 | "language": "python", 73 | "name": "python2" 74 | }, 75 | "language_info": { 76 | "codemirror_mode": { 77 | "name": "ipython", 78 | "version": 2 79 | }, 80 | "file_extension": ".py", 81 | "mimetype": "text/x-python", 82 | "name": "python", 83 | "nbconvert_exporter": "python", 84 | "pygments_lexer": "ipython2", 85 | "version": "2.7.13" 86 | } 87 | }, 88 | "nbformat": 4, 89 | "nbformat_minor": 2 90 | } 91 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | '''Setup script for bdds.''' 2 | 3 | 4 | from setuptools import setup 5 | 6 | 7 | if __name__ == '__main__': 8 | setup(name='bdds', 9 | version='1.0.1', 10 | description='API for brain decoding datasets', 11 | author='Shuntaro Aoki', 12 | author_email='brainliner-admin@atr.jp', 13 | url='https://github.com/KamitaniLab/brain-decoding-datasets', 14 | license='MIT', 15 | packages=['bdds'], 16 | install_requires=['numpy', 'scipy', 'h5py']) 17 | --------------------------------------------------------------------------------