brainscore-vision 2.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1009) hide show
  1. brainscore_vision/__init__.py +105 -0
  2. brainscore_vision/__main__.py +20 -0
  3. brainscore_vision/benchmark_helpers/__init__.py +67 -0
  4. brainscore_vision/benchmark_helpers/neural_common.py +70 -0
  5. brainscore_vision/benchmark_helpers/properties_common.py +424 -0
  6. brainscore_vision/benchmark_helpers/screen.py +126 -0
  7. brainscore_vision/benchmark_helpers/test_helper.py +160 -0
  8. brainscore_vision/benchmarks/README.md +7 -0
  9. brainscore_vision/benchmarks/__init__.py +122 -0
  10. brainscore_vision/benchmarks/baker2022/__init__.py +9 -0
  11. brainscore_vision/benchmarks/baker2022/benchmark.py +125 -0
  12. brainscore_vision/benchmarks/baker2022/requirements.txt +1 -0
  13. brainscore_vision/benchmarks/baker2022/test.py +90 -0
  14. brainscore_vision/benchmarks/bmd2024/__init__.py +8 -0
  15. brainscore_vision/benchmarks/bmd2024/benchmark.py +51 -0
  16. brainscore_vision/benchmarks/bmd2024/test.py +29 -0
  17. brainscore_vision/benchmarks/bracci2019/__init__.py +8 -0
  18. brainscore_vision/benchmarks/bracci2019/benchmark.py +286 -0
  19. brainscore_vision/benchmarks/bracci2019/requirements.txt +3 -0
  20. brainscore_vision/benchmarks/cadena2017/__init__.py +5 -0
  21. brainscore_vision/benchmarks/cadena2017/benchmark.py +91 -0
  22. brainscore_vision/benchmarks/cadena2017/test.py +35 -0
  23. brainscore_vision/benchmarks/coggan2024_behavior/__init__.py +8 -0
  24. brainscore_vision/benchmarks/coggan2024_behavior/benchmark.py +133 -0
  25. brainscore_vision/benchmarks/coggan2024_behavior/test.py +21 -0
  26. brainscore_vision/benchmarks/coggan2024_fMRI/__init__.py +15 -0
  27. brainscore_vision/benchmarks/coggan2024_fMRI/benchmark.py +201 -0
  28. brainscore_vision/benchmarks/coggan2024_fMRI/test.py +25 -0
  29. brainscore_vision/benchmarks/ferguson2024/__init__.py +24 -0
  30. brainscore_vision/benchmarks/ferguson2024/benchmark.py +210 -0
  31. brainscore_vision/benchmarks/ferguson2024/helpers/helpers.py +251 -0
  32. brainscore_vision/benchmarks/ferguson2024/requirements.txt +5 -0
  33. brainscore_vision/benchmarks/ferguson2024/test.py +114 -0
  34. brainscore_vision/benchmarks/freemanziemba2013/__init__.py +10 -0
  35. brainscore_vision/benchmarks/freemanziemba2013/benchmarks/benchmark.py +53 -0
  36. brainscore_vision/benchmarks/freemanziemba2013/benchmarks/public_benchmarks.py +37 -0
  37. brainscore_vision/benchmarks/freemanziemba2013/test.py +98 -0
  38. brainscore_vision/benchmarks/geirhos2021/__init__.py +59 -0
  39. brainscore_vision/benchmarks/geirhos2021/benchmark.py +132 -0
  40. brainscore_vision/benchmarks/geirhos2021/test.py +189 -0
  41. brainscore_vision/benchmarks/hebart2023/__init__.py +4 -0
  42. brainscore_vision/benchmarks/hebart2023/benchmark.py +72 -0
  43. brainscore_vision/benchmarks/hebart2023/test.py +19 -0
  44. brainscore_vision/benchmarks/hermann2020/__init__.py +6 -0
  45. brainscore_vision/benchmarks/hermann2020/benchmark.py +63 -0
  46. brainscore_vision/benchmarks/hermann2020/test.py +28 -0
  47. brainscore_vision/benchmarks/igustibagus2024/__init__.py +11 -0
  48. brainscore_vision/benchmarks/igustibagus2024/domain_transfer_analysis.py +306 -0
  49. brainscore_vision/benchmarks/igustibagus2024/domain_transfer_neural.py +134 -0
  50. brainscore_vision/benchmarks/igustibagus2024/test.py +45 -0
  51. brainscore_vision/benchmarks/imagenet/__init__.py +4 -0
  52. brainscore_vision/benchmarks/imagenet/benchmark.py +50 -0
  53. brainscore_vision/benchmarks/imagenet/imagenet2012.csv +50001 -0
  54. brainscore_vision/benchmarks/imagenet/test.py +32 -0
  55. brainscore_vision/benchmarks/imagenet_c/__init__.py +7 -0
  56. brainscore_vision/benchmarks/imagenet_c/benchmark.py +204 -0
  57. brainscore_vision/benchmarks/imagenet_c/test.py +57 -0
  58. brainscore_vision/benchmarks/islam2021/__init__.py +11 -0
  59. brainscore_vision/benchmarks/islam2021/benchmark.py +107 -0
  60. brainscore_vision/benchmarks/islam2021/test.py +47 -0
  61. brainscore_vision/benchmarks/kar2019/__init__.py +4 -0
  62. brainscore_vision/benchmarks/kar2019/benchmark.py +88 -0
  63. brainscore_vision/benchmarks/kar2019/test.py +93 -0
  64. brainscore_vision/benchmarks/majajhong2015/__init__.py +18 -0
  65. brainscore_vision/benchmarks/majajhong2015/benchmark.py +96 -0
  66. brainscore_vision/benchmarks/majajhong2015/test.py +103 -0
  67. brainscore_vision/benchmarks/malania2007/__init__.py +13 -0
  68. brainscore_vision/benchmarks/malania2007/benchmark.py +235 -0
  69. brainscore_vision/benchmarks/malania2007/test.py +64 -0
  70. brainscore_vision/benchmarks/maniquet2024/__init__.py +6 -0
  71. brainscore_vision/benchmarks/maniquet2024/benchmark.py +199 -0
  72. brainscore_vision/benchmarks/maniquet2024/test.py +17 -0
  73. brainscore_vision/benchmarks/marques2020/__init__.py +76 -0
  74. brainscore_vision/benchmarks/marques2020/benchmarks/cavanaugh2002a_benchmark.py +119 -0
  75. brainscore_vision/benchmarks/marques2020/benchmarks/devalois1982a_benchmark.py +84 -0
  76. brainscore_vision/benchmarks/marques2020/benchmarks/devalois1982b_benchmark.py +88 -0
  77. brainscore_vision/benchmarks/marques2020/benchmarks/freemanZiemba2013_benchmark.py +138 -0
  78. brainscore_vision/benchmarks/marques2020/benchmarks/ringach2002_benchmark.py +167 -0
  79. brainscore_vision/benchmarks/marques2020/benchmarks/schiller1976_benchmark.py +100 -0
  80. brainscore_vision/benchmarks/marques2020/test.py +135 -0
  81. brainscore_vision/benchmarks/objectnet/__init__.py +4 -0
  82. brainscore_vision/benchmarks/objectnet/benchmark.py +52 -0
  83. brainscore_vision/benchmarks/objectnet/test.py +33 -0
  84. brainscore_vision/benchmarks/rajalingham2018/__init__.py +10 -0
  85. brainscore_vision/benchmarks/rajalingham2018/benchmarks/benchmark.py +74 -0
  86. brainscore_vision/benchmarks/rajalingham2018/benchmarks/public_benchmark.py +10 -0
  87. brainscore_vision/benchmarks/rajalingham2018/test.py +125 -0
  88. brainscore_vision/benchmarks/rajalingham2018/test_resources/alexnet-probabilities.nc +0 -0
  89. brainscore_vision/benchmarks/rajalingham2018/test_resources/identifier=alexnet,stimuli_identifier=objectome-240.nc +0 -0
  90. brainscore_vision/benchmarks/rajalingham2018/test_resources/identifier=resnet18,stimuli_identifier=objectome-240.nc +0 -0
  91. brainscore_vision/benchmarks/rajalingham2018/test_resources/identifier=resnet34,stimuli_identifier=objectome-240.nc +0 -0
  92. brainscore_vision/benchmarks/rajalingham2018/test_resources/resnet18-probabilities.nc +0 -0
  93. brainscore_vision/benchmarks/rajalingham2018/test_resources/resnet34-probabilities.nc +0 -0
  94. brainscore_vision/benchmarks/rajalingham2020/__init__.py +4 -0
  95. brainscore_vision/benchmarks/rajalingham2020/benchmark.py +52 -0
  96. brainscore_vision/benchmarks/rajalingham2020/test.py +39 -0
  97. brainscore_vision/benchmarks/sanghavi2020/__init__.py +17 -0
  98. brainscore_vision/benchmarks/sanghavi2020/benchmarks/sanghavi2020_benchmark.py +44 -0
  99. brainscore_vision/benchmarks/sanghavi2020/benchmarks/sanghavijozwik2020_benchmark.py +44 -0
  100. brainscore_vision/benchmarks/sanghavi2020/benchmarks/sanghavimurty2020_benchmark.py +44 -0
  101. brainscore_vision/benchmarks/sanghavi2020/test.py +83 -0
  102. brainscore_vision/benchmarks/scialom2024/__init__.py +52 -0
  103. brainscore_vision/benchmarks/scialom2024/benchmark.py +97 -0
  104. brainscore_vision/benchmarks/scialom2024/test.py +162 -0
  105. brainscore_vision/data/__init__.py +0 -0
  106. brainscore_vision/data/baker2022/__init__.py +40 -0
  107. brainscore_vision/data/baker2022/data_packaging/inverted_distortion_data_assembly.py +43 -0
  108. brainscore_vision/data/baker2022/data_packaging/inverted_distortion_stimulus_set.py +81 -0
  109. brainscore_vision/data/baker2022/data_packaging/mapping.py +60 -0
  110. brainscore_vision/data/baker2022/data_packaging/normal_distortion_data_assembly.py +46 -0
  111. brainscore_vision/data/baker2022/data_packaging/normal_distortion_stimulus_set.py +94 -0
  112. brainscore_vision/data/baker2022/test.py +135 -0
  113. brainscore_vision/data/barbumayo2019/BarbuMayo2019.py +26 -0
  114. brainscore_vision/data/barbumayo2019/__init__.py +23 -0
  115. brainscore_vision/data/barbumayo2019/test.py +10 -0
  116. brainscore_vision/data/bashivankar2019/__init__.py +52 -0
  117. brainscore_vision/data/bashivankar2019/data_packaging/2020-08-17_npc_v4_data.h5.png +0 -0
  118. brainscore_vision/data/bashivankar2019/data_packaging/requirements.txt +4 -0
  119. brainscore_vision/data/bashivankar2019/data_packaging/synthetic.py +162 -0
  120. brainscore_vision/data/bashivankar2019/test.py +15 -0
  121. brainscore_vision/data/bmd2024/__init__.py +69 -0
  122. brainscore_vision/data/bmd2024/data_packaging/BMD_2024_data_assembly.py +91 -0
  123. brainscore_vision/data/bmd2024/data_packaging/BMD_2024_simulus_set.py +48 -0
  124. brainscore_vision/data/bmd2024/data_packaging/stim_meta.csv +401 -0
  125. brainscore_vision/data/bmd2024/test.py +130 -0
  126. brainscore_vision/data/bracci2019/__init__.py +36 -0
  127. brainscore_vision/data/bracci2019/data_packaging.py +221 -0
  128. brainscore_vision/data/bracci2019/test.py +16 -0
  129. brainscore_vision/data/cadena2017/__init__.py +52 -0
  130. brainscore_vision/data/cadena2017/data_packaging/2018-08-07_tolias_v1.ipynb +25880 -0
  131. brainscore_vision/data/cadena2017/data_packaging/analysis.py +26 -0
  132. brainscore_vision/data/cadena2017/test.py +24 -0
  133. brainscore_vision/data/cichy2019/__init__.py +38 -0
  134. brainscore_vision/data/cichy2019/test.py +8 -0
  135. brainscore_vision/data/coggan2024_behavior/__init__.py +36 -0
  136. brainscore_vision/data/coggan2024_behavior/data_packaging.py +166 -0
  137. brainscore_vision/data/coggan2024_behavior/test.py +32 -0
  138. brainscore_vision/data/coggan2024_fMRI/__init__.py +27 -0
  139. brainscore_vision/data/coggan2024_fMRI/data_packaging.py +123 -0
  140. brainscore_vision/data/coggan2024_fMRI/test.py +25 -0
  141. brainscore_vision/data/david2004/__init__.py +34 -0
  142. brainscore_vision/data/david2004/data_packaging/2018-05-10_gallant_data.ipynb +3647 -0
  143. brainscore_vision/data/david2004/data_packaging/2018-05-23_gallant_data.ipynb +3149 -0
  144. brainscore_vision/data/david2004/data_packaging/2018-06-05_gallant_data.ipynb +3628 -0
  145. brainscore_vision/data/david2004/data_packaging/__init__.py +61 -0
  146. brainscore_vision/data/david2004/data_packaging/convertGallant.m +100 -0
  147. brainscore_vision/data/david2004/data_packaging/convertGallantV1Aligned.m +58 -0
  148. brainscore_vision/data/david2004/data_packaging/lib/DataHash_20160618/DataHash.m +484 -0
  149. brainscore_vision/data/david2004/data_packaging/lib/DataHash_20160618/license.txt +24 -0
  150. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/GetMD5.c +895 -0
  151. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/GetMD5.m +107 -0
  152. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/GetMD5.mexw64 +0 -0
  153. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/GetMD5_helper.m +91 -0
  154. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/InstallMex.m +307 -0
  155. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/license.txt +24 -0
  156. brainscore_vision/data/david2004/data_packaging/lib/GetMD5/uTest_GetMD5.m +290 -0
  157. brainscore_vision/data/david2004/data_packaging/lib/glob/glob.m +472 -0
  158. brainscore_vision/data/david2004/data_packaging/lib/glob/license.txt +27 -0
  159. brainscore_vision/data/david2004/data_packaging/xr_align_debug.py +137 -0
  160. brainscore_vision/data/david2004/test.py +8 -0
  161. brainscore_vision/data/deng2009/__init__.py +22 -0
  162. brainscore_vision/data/deng2009/deng2009imagenet.py +33 -0
  163. brainscore_vision/data/deng2009/test.py +9 -0
  164. brainscore_vision/data/ferguson2024/__init__.py +401 -0
  165. brainscore_vision/data/ferguson2024/data_packaging/data_packaging.py +164 -0
  166. brainscore_vision/data/ferguson2024/data_packaging/fitting_stimuli.py +20 -0
  167. brainscore_vision/data/ferguson2024/requirements.txt +2 -0
  168. brainscore_vision/data/ferguson2024/test.py +155 -0
  169. brainscore_vision/data/freemanziemba2013/__init__.py +133 -0
  170. brainscore_vision/data/freemanziemba2013/data_packaging/2018-10-05_movshon.ipynb +2002 -0
  171. brainscore_vision/data/freemanziemba2013/data_packaging/2020-02-21_movshon_aperture.ipynb +4730 -0
  172. brainscore_vision/data/freemanziemba2013/data_packaging/2020-02-26_movshon_aperture_test.ipynb +2228 -0
  173. brainscore_vision/data/freemanziemba2013/data_packaging/aperture_correct.py +160 -0
  174. brainscore_vision/data/freemanziemba2013/data_packaging/data_packaging.py +57 -0
  175. brainscore_vision/data/freemanziemba2013/data_packaging/movshon.py +202 -0
  176. brainscore_vision/data/freemanziemba2013/test.py +97 -0
  177. brainscore_vision/data/geirhos2021/__init__.py +358 -0
  178. brainscore_vision/data/geirhos2021/creating_geirhos_ids.ipynb +468 -0
  179. brainscore_vision/data/geirhos2021/data_packaging/colour/colour_data_assembly.py +87 -0
  180. brainscore_vision/data/geirhos2021/data_packaging/colour/colour_stimulus_set.py +81 -0
  181. brainscore_vision/data/geirhos2021/data_packaging/contrast/contrast_data_assembly.py +83 -0
  182. brainscore_vision/data/geirhos2021/data_packaging/contrast/contrast_stimulus_set.py +82 -0
  183. brainscore_vision/data/geirhos2021/data_packaging/cue-conflict/cue-conflict_data_assembly.py +100 -0
  184. brainscore_vision/data/geirhos2021/data_packaging/cue-conflict/cue-conflict_stimulus_set.py +84 -0
  185. brainscore_vision/data/geirhos2021/data_packaging/edge/edge_data_assembly.py +96 -0
  186. brainscore_vision/data/geirhos2021/data_packaging/edge/edge_stimulus_set.py +69 -0
  187. brainscore_vision/data/geirhos2021/data_packaging/eidolonI/eidolonI_data_assembly.py +92 -0
  188. brainscore_vision/data/geirhos2021/data_packaging/eidolonI/eidolonI_stimulus_set.py +82 -0
  189. brainscore_vision/data/geirhos2021/data_packaging/eidolonII/eidolonII_data_assembly.py +92 -0
  190. brainscore_vision/data/geirhos2021/data_packaging/eidolonII/eidolonII_stimulus_set.py +82 -0
  191. brainscore_vision/data/geirhos2021/data_packaging/eidolonIII/eidolonIII_data_assembly.py +92 -0
  192. brainscore_vision/data/geirhos2021/data_packaging/eidolonIII/eidolonIII_stimulus_set.py +82 -0
  193. brainscore_vision/data/geirhos2021/data_packaging/false-colour/false-colour_data_assembly.py +83 -0
  194. brainscore_vision/data/geirhos2021/data_packaging/false-colour/false-colour_stimulus_set.py +87 -0
  195. brainscore_vision/data/geirhos2021/data_packaging/high-pass/high-pass_data_assembly.py +84 -0
  196. brainscore_vision/data/geirhos2021/data_packaging/high-pass/high-pass_stimulus_set.py +82 -0
  197. brainscore_vision/data/geirhos2021/data_packaging/low-pass/low-pass_data_assembly.py +84 -0
  198. brainscore_vision/data/geirhos2021/data_packaging/low-pass/low-pass_stimulus_set.py +81 -0
  199. brainscore_vision/data/geirhos2021/data_packaging/phase-scrambling/phase-scrambling_data_assembly.py +84 -0
  200. brainscore_vision/data/geirhos2021/data_packaging/phase-scrambling/phase-scrambling_stimulus_set.py +82 -0
  201. brainscore_vision/data/geirhos2021/data_packaging/power-equalisation/power-equalisation_data_assembly.py +88 -0
  202. brainscore_vision/data/geirhos2021/data_packaging/power-equalisation/power-equalisation_stimulus_set.py +82 -0
  203. brainscore_vision/data/geirhos2021/data_packaging/rotation/rotation_data_assembly.py +87 -0
  204. brainscore_vision/data/geirhos2021/data_packaging/rotation/rotation_stimulus_set.py +82 -0
  205. brainscore_vision/data/geirhos2021/data_packaging/silhouette/silhouette_data_assembly.py +100 -0
  206. brainscore_vision/data/geirhos2021/data_packaging/silhouette/silhouette_stimulus_set.py +71 -0
  207. brainscore_vision/data/geirhos2021/data_packaging/sketch/sketch_data_assembly.py +88 -0
  208. brainscore_vision/data/geirhos2021/data_packaging/sketch/sketch_stimulus_set.py +75 -0
  209. brainscore_vision/data/geirhos2021/data_packaging/stylized/stylized_data_assembly.py +87 -0
  210. brainscore_vision/data/geirhos2021/data_packaging/stylized/stylized_stimulus_set.py +75 -0
  211. brainscore_vision/data/geirhos2021/data_packaging/uniform-noise/uniform-noise_data_assembly.py +86 -0
  212. brainscore_vision/data/geirhos2021/data_packaging/uniform-noise/uniform-noise_stimulus_set.py +82 -0
  213. brainscore_vision/data/geirhos2021/geirhos_hashes.csv +52 -0
  214. brainscore_vision/data/geirhos2021/test.py +330 -0
  215. brainscore_vision/data/hebart2023/__init__.py +23 -0
  216. brainscore_vision/data/hebart2023/packaging/data_assembly.py +40 -0
  217. brainscore_vision/data/hebart2023/packaging/stimulus_set.py +72 -0
  218. brainscore_vision/data/hebart2023/test.py +42 -0
  219. brainscore_vision/data/hendrycks2019/__init__.py +45 -0
  220. brainscore_vision/data/hendrycks2019/test.py +26 -0
  221. brainscore_vision/data/igustibagus2024/__init__.py +23 -0
  222. brainscore_vision/data/igustibagus2024/dependencies/data_pico/stimulus_dicarlo_domain_transfer.csv +3139 -0
  223. brainscore_vision/data/igustibagus2024/investigation_consistency.ipynb +346 -0
  224. brainscore_vision/data/igustibagus2024/merged_assembly/__init__.py +0 -0
  225. brainscore_vision/data/igustibagus2024/merged_assembly/create_merged_assembly.ipynb +649 -0
  226. brainscore_vision/data/igustibagus2024/merged_assembly/create_merged_assembly_and_stim.py +152 -0
  227. brainscore_vision/data/igustibagus2024/merged_assembly/create_stimulus_set_with_background-id.py +45 -0
  228. brainscore_vision/data/igustibagus2024/merged_assembly/helpers_background_id.py +849 -0
  229. brainscore_vision/data/igustibagus2024/merged_assembly/merged_stimulus_set.csv +3139 -0
  230. brainscore_vision/data/igustibagus2024/oleo_pico_exploration.ipynb +410 -0
  231. brainscore_vision/data/igustibagus2024/test.py +26 -0
  232. brainscore_vision/data/imagenetslim15000/ImageNetSlim15000.py +30 -0
  233. brainscore_vision/data/imagenetslim15000/__init__.py +11 -0
  234. brainscore_vision/data/imagenetslim15000/test.py +8 -0
  235. brainscore_vision/data/islam2021/__init__.py +18 -0
  236. brainscore_vision/data/islam2021/data_packaging.py +64 -0
  237. brainscore_vision/data/islam2021/test.py +11 -0
  238. brainscore_vision/data/kar2018/__init__.py +58 -0
  239. brainscore_vision/data/kar2018/data_packaging/kar_coco.py +97 -0
  240. brainscore_vision/data/kar2018/data_packaging/kar_hvm.py +77 -0
  241. brainscore_vision/data/kar2018/data_packaging/requirements.txt +1 -0
  242. brainscore_vision/data/kar2018/test.py +10 -0
  243. brainscore_vision/data/kar2019/__init__.py +43 -0
  244. brainscore_vision/data/kar2019/data_packaging.py +116 -0
  245. brainscore_vision/data/kar2019/test.py +8 -0
  246. brainscore_vision/data/kuzovkin2018/__init__.py +36 -0
  247. brainscore_vision/data/kuzovkin2018/createAssembliesBrainScore.py +103 -0
  248. brainscore_vision/data/kuzovkin2018/test.py +8 -0
  249. brainscore_vision/data/majajhong2015/__init__.py +113 -0
  250. brainscore_vision/data/majajhong2015/data_packaging/darren10ms.py +32 -0
  251. brainscore_vision/data/majajhong2015/data_packaging/data_packaging.py +65 -0
  252. brainscore_vision/data/majajhong2015/test.py +38 -0
  253. brainscore_vision/data/malania2007/__init__.py +254 -0
  254. brainscore_vision/data/malania2007/data_packaging/malania_data_assembly.py +79 -0
  255. brainscore_vision/data/malania2007/data_packaging/malania_stimulus_set.py +79 -0
  256. brainscore_vision/data/malania2007/test.py +147 -0
  257. brainscore_vision/data/maniquet2024/__init__.py +57 -0
  258. brainscore_vision/data/maniquet2024/data_packaging.py +151 -0
  259. brainscore_vision/data/maniquet2024/test.py +16 -0
  260. brainscore_vision/data/marques2020/__init__.py +123 -0
  261. brainscore_vision/data/marques2020/data_packaging/marques_cavanaugh2002a.py +84 -0
  262. brainscore_vision/data/marques2020/data_packaging/marques_devalois1982a.py +44 -0
  263. brainscore_vision/data/marques2020/data_packaging/marques_devalois1982b.py +54 -0
  264. brainscore_vision/data/marques2020/data_packaging/marques_freemanZiemba2013.py +252 -0
  265. brainscore_vision/data/marques2020/data_packaging/marques_gen_stim.py +95 -0
  266. brainscore_vision/data/marques2020/data_packaging/marques_ringach2002.py +95 -0
  267. brainscore_vision/data/marques2020/data_packaging/marques_schiller1976c.py +60 -0
  268. brainscore_vision/data/marques2020/data_packaging/marques_stim_common.py +389 -0
  269. brainscore_vision/data/marques2020/data_packaging/marques_utils.py +21 -0
  270. brainscore_vision/data/marques2020/data_packaging/setup.py +13 -0
  271. brainscore_vision/data/marques2020/test.py +54 -0
  272. brainscore_vision/data/rajalingham2018/__init__.py +56 -0
  273. brainscore_vision/data/rajalingham2018/rajalingham2018objectome.py +193 -0
  274. brainscore_vision/data/rajalingham2018/test.py +10 -0
  275. brainscore_vision/data/rajalingham2020/__init__.py +39 -0
  276. brainscore_vision/data/rajalingham2020/rajalingham2020orthographic_IT.py +97 -0
  277. brainscore_vision/data/rajalingham2020/test.py +8 -0
  278. brainscore_vision/data/rust2012/2020-12-28_rust.ipynb +3301 -0
  279. brainscore_vision/data/rust2012/__init__.py +45 -0
  280. brainscore_vision/data/rust2012/rust305.py +35 -0
  281. brainscore_vision/data/rust2012/test.py +47 -0
  282. brainscore_vision/data/sanghavi2020/__init__.py +119 -0
  283. brainscore_vision/data/sanghavi2020/data_packaging/environment.yml +36 -0
  284. brainscore_vision/data/sanghavi2020/data_packaging/requirements.txt +4 -0
  285. brainscore_vision/data/sanghavi2020/data_packaging/sanghavi2020.py +101 -0
  286. brainscore_vision/data/sanghavi2020/data_packaging/sanghavijozwik2020.py +148 -0
  287. brainscore_vision/data/sanghavi2020/data_packaging/sanghavikar2020.py +131 -0
  288. brainscore_vision/data/sanghavi2020/data_packaging/sanghavimurty2020.py +120 -0
  289. brainscore_vision/data/sanghavi2020/data_packaging/sanghavimurty2020things.py +138 -0
  290. brainscore_vision/data/sanghavi2020/data_packaging/sanghavimurty2020things1.py +118 -0
  291. brainscore_vision/data/sanghavi2020/data_packaging/sanghavimurty2020things2.py +118 -0
  292. brainscore_vision/data/sanghavi2020/test.py +13 -0
  293. brainscore_vision/data/scialom2024/__init__.py +386 -0
  294. brainscore_vision/data/scialom2024/data_packaging/scialom_data_assembly.py +164 -0
  295. brainscore_vision/data/scialom2024/data_packaging/scialom_stimulus_set.py +117 -0
  296. brainscore_vision/data/scialom2024/test.py +301 -0
  297. brainscore_vision/data/seibert2019/__init__.py +25 -0
  298. brainscore_vision/data/seibert2019/data_packaging/2020-10-13_juvenile.ipynb +35703 -0
  299. brainscore_vision/data/seibert2019/data_packaging/2020-11-18_juvenile_scratch.txt +556 -0
  300. brainscore_vision/data/seibert2019/data_packaging/2020-11-22_juvenile_dldata.ipynb +3614 -0
  301. brainscore_vision/data/seibert2019/data_packaging/juvenile.py +103 -0
  302. brainscore_vision/data/seibert2019/test.py +35 -0
  303. brainscore_vision/data/zhang2018/__init__.py +38 -0
  304. brainscore_vision/data/zhang2018/test.py +29 -0
  305. brainscore_vision/data_helpers/__init__.py +0 -0
  306. brainscore_vision/data_helpers/lookup_legacy.py +15 -0
  307. brainscore_vision/data_helpers/s3.py +79 -0
  308. brainscore_vision/metric_helpers/__init__.py +5 -0
  309. brainscore_vision/metric_helpers/temporal.py +119 -0
  310. brainscore_vision/metric_helpers/transformations.py +379 -0
  311. brainscore_vision/metric_helpers/utils.py +71 -0
  312. brainscore_vision/metric_helpers/xarray_utils.py +151 -0
  313. brainscore_vision/metrics/__init__.py +7 -0
  314. brainscore_vision/metrics/accuracy/__init__.py +4 -0
  315. brainscore_vision/metrics/accuracy/metric.py +16 -0
  316. brainscore_vision/metrics/accuracy/test.py +11 -0
  317. brainscore_vision/metrics/accuracy_distance/__init__.py +4 -0
  318. brainscore_vision/metrics/accuracy_distance/metric.py +109 -0
  319. brainscore_vision/metrics/accuracy_distance/test.py +57 -0
  320. brainscore_vision/metrics/baker_accuracy_delta/__init__.py +4 -0
  321. brainscore_vision/metrics/baker_accuracy_delta/metric.py +94 -0
  322. brainscore_vision/metrics/baker_accuracy_delta/requirements.txt +1 -0
  323. brainscore_vision/metrics/baker_accuracy_delta/test.py +1 -0
  324. brainscore_vision/metrics/cka/__init__.py +14 -0
  325. brainscore_vision/metrics/cka/metric.py +105 -0
  326. brainscore_vision/metrics/cka/test.py +28 -0
  327. brainscore_vision/metrics/dimensionality/__init__.py +13 -0
  328. brainscore_vision/metrics/dimensionality/metric.py +45 -0
  329. brainscore_vision/metrics/distribution_similarity/__init__.py +14 -0
  330. brainscore_vision/metrics/distribution_similarity/metric.py +84 -0
  331. brainscore_vision/metrics/distribution_similarity/test.py +10 -0
  332. brainscore_vision/metrics/error_consistency/__init__.py +13 -0
  333. brainscore_vision/metrics/error_consistency/metric.py +93 -0
  334. brainscore_vision/metrics/error_consistency/test.py +39 -0
  335. brainscore_vision/metrics/i1i2/__init__.py +16 -0
  336. brainscore_vision/metrics/i1i2/metric.py +299 -0
  337. brainscore_vision/metrics/i1i2/requirements.txt +2 -0
  338. brainscore_vision/metrics/i1i2/test.py +36 -0
  339. brainscore_vision/metrics/i1i2/test_resources/alexnet-probabilities.nc +0 -0
  340. brainscore_vision/metrics/i1i2/test_resources/resnet18-probabilities.nc +0 -0
  341. brainscore_vision/metrics/i1i2/test_resources/resnet34-probabilities.nc +0 -0
  342. brainscore_vision/metrics/internal_consistency/__init__.py +8 -0
  343. brainscore_vision/metrics/internal_consistency/ceiling.py +127 -0
  344. brainscore_vision/metrics/internal_consistency/requirements.txt +1 -0
  345. brainscore_vision/metrics/internal_consistency/test.py +39 -0
  346. brainscore_vision/metrics/maniquet2024_metrics/__init__.py +19 -0
  347. brainscore_vision/metrics/maniquet2024_metrics/metric.py +416 -0
  348. brainscore_vision/metrics/maniquet2024_metrics/test.py +8 -0
  349. brainscore_vision/metrics/mask_regression/__init__.py +16 -0
  350. brainscore_vision/metrics/mask_regression/metric.py +242 -0
  351. brainscore_vision/metrics/mask_regression/requirements.txt +1 -0
  352. brainscore_vision/metrics/mask_regression/test.py +0 -0
  353. brainscore_vision/metrics/ost/__init__.py +23 -0
  354. brainscore_vision/metrics/ost/metric.py +350 -0
  355. brainscore_vision/metrics/ost/requirements.txt +2 -0
  356. brainscore_vision/metrics/ost/test.py +0 -0
  357. brainscore_vision/metrics/rdm/__init__.py +14 -0
  358. brainscore_vision/metrics/rdm/metric.py +101 -0
  359. brainscore_vision/metrics/rdm/requirements.txt +2 -0
  360. brainscore_vision/metrics/rdm/test.py +63 -0
  361. brainscore_vision/metrics/regression_correlation/__init__.py +48 -0
  362. brainscore_vision/metrics/regression_correlation/mask_regression.py +232 -0
  363. brainscore_vision/metrics/regression_correlation/metric.py +125 -0
  364. brainscore_vision/metrics/regression_correlation/requirements.txt +3 -0
  365. brainscore_vision/metrics/regression_correlation/test.py +36 -0
  366. brainscore_vision/metrics/threshold/__init__.py +5 -0
  367. brainscore_vision/metrics/threshold/metric.py +481 -0
  368. brainscore_vision/metrics/threshold/test.py +71 -0
  369. brainscore_vision/metrics/value_delta/__init__.py +4 -0
  370. brainscore_vision/metrics/value_delta/metric.py +30 -0
  371. brainscore_vision/metrics/value_delta/requirements.txt +1 -0
  372. brainscore_vision/metrics/value_delta/test.py +40 -0
  373. brainscore_vision/model_helpers/__init__.py +3 -0
  374. brainscore_vision/model_helpers/activations/__init__.py +1 -0
  375. brainscore_vision/model_helpers/activations/core.py +635 -0
  376. brainscore_vision/model_helpers/activations/pca.py +117 -0
  377. brainscore_vision/model_helpers/activations/pytorch.py +152 -0
  378. brainscore_vision/model_helpers/activations/temporal/__init__.py +0 -0
  379. brainscore_vision/model_helpers/activations/temporal/core/__init__.py +3 -0
  380. brainscore_vision/model_helpers/activations/temporal/core/executor.py +219 -0
  381. brainscore_vision/model_helpers/activations/temporal/core/extractor.py +282 -0
  382. brainscore_vision/model_helpers/activations/temporal/core/inferencer/__init__.py +2 -0
  383. brainscore_vision/model_helpers/activations/temporal/core/inferencer/base.py +274 -0
  384. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/__init__.py +2 -0
  385. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/base.py +134 -0
  386. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/temporal_context/__init__.py +2 -0
  387. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/temporal_context/base.py +99 -0
  388. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/temporal_context/block.py +77 -0
  389. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/temporal_context/causal.py +86 -0
  390. brainscore_vision/model_helpers/activations/temporal/core/inferencer/video/time_aligner.py +73 -0
  391. brainscore_vision/model_helpers/activations/temporal/inputs/__init__.py +3 -0
  392. brainscore_vision/model_helpers/activations/temporal/inputs/base.py +17 -0
  393. brainscore_vision/model_helpers/activations/temporal/inputs/image.py +50 -0
  394. brainscore_vision/model_helpers/activations/temporal/inputs/video.py +186 -0
  395. brainscore_vision/model_helpers/activations/temporal/model/__init__.py +2 -0
  396. brainscore_vision/model_helpers/activations/temporal/model/base.py +33 -0
  397. brainscore_vision/model_helpers/activations/temporal/model/pytorch.py +107 -0
  398. brainscore_vision/model_helpers/activations/temporal/utils.py +228 -0
  399. brainscore_vision/model_helpers/brain_transformation/__init__.py +97 -0
  400. brainscore_vision/model_helpers/brain_transformation/behavior.py +348 -0
  401. brainscore_vision/model_helpers/brain_transformation/imagenet_classes.txt +1000 -0
  402. brainscore_vision/model_helpers/brain_transformation/neural.py +159 -0
  403. brainscore_vision/model_helpers/brain_transformation/temporal.py +199 -0
  404. brainscore_vision/model_helpers/check_submission/__init__.py +0 -0
  405. brainscore_vision/model_helpers/check_submission/check_models.py +87 -0
  406. brainscore_vision/model_helpers/check_submission/images/1.png +0 -0
  407. brainscore_vision/model_helpers/check_submission/images/10.png +0 -0
  408. brainscore_vision/model_helpers/check_submission/images/11.png +0 -0
  409. brainscore_vision/model_helpers/check_submission/images/12.png +0 -0
  410. brainscore_vision/model_helpers/check_submission/images/13.png +0 -0
  411. brainscore_vision/model_helpers/check_submission/images/14.png +0 -0
  412. brainscore_vision/model_helpers/check_submission/images/15.png +0 -0
  413. brainscore_vision/model_helpers/check_submission/images/16.png +0 -0
  414. brainscore_vision/model_helpers/check_submission/images/17.png +0 -0
  415. brainscore_vision/model_helpers/check_submission/images/18.png +0 -0
  416. brainscore_vision/model_helpers/check_submission/images/19.png +0 -0
  417. brainscore_vision/model_helpers/check_submission/images/2.png +0 -0
  418. brainscore_vision/model_helpers/check_submission/images/20.png +0 -0
  419. brainscore_vision/model_helpers/check_submission/images/3.png +0 -0
  420. brainscore_vision/model_helpers/check_submission/images/4.png +0 -0
  421. brainscore_vision/model_helpers/check_submission/images/5.png +0 -0
  422. brainscore_vision/model_helpers/check_submission/images/6.png +0 -0
  423. brainscore_vision/model_helpers/check_submission/images/7.png +0 -0
  424. brainscore_vision/model_helpers/check_submission/images/8.png +0 -0
  425. brainscore_vision/model_helpers/check_submission/images/9.png +0 -0
  426. brainscore_vision/model_helpers/conftest.py +3 -0
  427. brainscore_vision/model_helpers/generic_plugin_tests.py +119 -0
  428. brainscore_vision/model_helpers/s3.py +62 -0
  429. brainscore_vision/model_helpers/utils/__init__.py +15 -0
  430. brainscore_vision/model_helpers/utils/s3.py +42 -0
  431. brainscore_vision/model_interface.py +214 -0
  432. brainscore_vision/models/AdvProp_efficientne_b6/__init__.py +5 -0
  433. brainscore_vision/models/AdvProp_efficientne_b6/model.py +75 -0
  434. brainscore_vision/models/AdvProp_efficientne_b6/requirements.txt +1 -0
  435. brainscore_vision/models/AdvProp_efficientne_b6/test.py +9 -0
  436. brainscore_vision/models/AlexNet_SIN/__init__.py +8 -0
  437. brainscore_vision/models/AlexNet_SIN/model.py +29 -0
  438. brainscore_vision/models/AlexNet_SIN/requirements.txt +2 -0
  439. brainscore_vision/models/AlexNet_SIN/test.py +1 -0
  440. brainscore_vision/models/Soumyadeep_inf_1/__init__.py +5 -0
  441. brainscore_vision/models/Soumyadeep_inf_1/model.py +60 -0
  442. brainscore_vision/models/Soumyadeep_inf_1/setup.py +26 -0
  443. brainscore_vision/models/Soumyadeep_inf_1/test.py +1 -0
  444. brainscore_vision/models/ViT_L_32_imagenet1k/__init__.py +8 -0
  445. brainscore_vision/models/ViT_L_32_imagenet1k/model.py +43 -0
  446. brainscore_vision/models/ViT_L_32_imagenet1k/requirements.txt +4 -0
  447. brainscore_vision/models/ViT_L_32_imagenet1k/test.py +8 -0
  448. brainscore_vision/models/__init__.py +0 -0
  449. brainscore_vision/models/alexnet/__init__.py +8 -0
  450. brainscore_vision/models/alexnet/model.py +28 -0
  451. brainscore_vision/models/alexnet/requirements.txt +2 -0
  452. brainscore_vision/models/alexnet/test.py +15 -0
  453. brainscore_vision/models/alexnet_7be5be79/__init__.py +7 -0
  454. brainscore_vision/models/alexnet_7be5be79/model.py +44 -0
  455. brainscore_vision/models/alexnet_7be5be79/setup.py +26 -0
  456. brainscore_vision/models/alexnet_7be5be79/test.py +1 -0
  457. brainscore_vision/models/alexnet_7be5be79_convs/__init__.py +5 -0
  458. brainscore_vision/models/alexnet_7be5be79_convs/model.py +42 -0
  459. brainscore_vision/models/alexnet_7be5be79_convs/setup.py +25 -0
  460. brainscore_vision/models/alexnet_7be5be79_convs/test.py +1 -0
  461. brainscore_vision/models/alexnet_ks_torevert/__init__.py +8 -0
  462. brainscore_vision/models/alexnet_ks_torevert/model.py +28 -0
  463. brainscore_vision/models/alexnet_ks_torevert/requirements.txt +2 -0
  464. brainscore_vision/models/alexnet_ks_torevert/test.py +15 -0
  465. brainscore_vision/models/alexnet_simclr_run1/__init__.py +7 -0
  466. brainscore_vision/models/alexnet_simclr_run1/model.py +267 -0
  467. brainscore_vision/models/alexnet_simclr_run1/requirements.txt +2 -0
  468. brainscore_vision/models/alexnet_simclr_run1/test.py +1 -0
  469. brainscore_vision/models/alexnet_testing/__init__.py +8 -0
  470. brainscore_vision/models/alexnet_testing/model.py +28 -0
  471. brainscore_vision/models/alexnet_testing/requirements.txt +2 -0
  472. brainscore_vision/models/alexnet_testing/setup.py +24 -0
  473. brainscore_vision/models/alexnet_testing/test.py +15 -0
  474. brainscore_vision/models/antialias_resnet152/__init__.py +7 -0
  475. brainscore_vision/models/antialias_resnet152/model.py +35 -0
  476. brainscore_vision/models/antialias_resnet152/requirements.txt +3 -0
  477. brainscore_vision/models/antialias_resnet152/test.py +8 -0
  478. brainscore_vision/models/antialiased_rnext101_32x8d/__init__.py +7 -0
  479. brainscore_vision/models/antialiased_rnext101_32x8d/model.py +35 -0
  480. brainscore_vision/models/antialiased_rnext101_32x8d/requirements.txt +1 -0
  481. brainscore_vision/models/antialiased_rnext101_32x8d/test.py +8 -0
  482. brainscore_vision/models/bp_resnet50_julios/__init__.py +5 -0
  483. brainscore_vision/models/bp_resnet50_julios/model.py +52 -0
  484. brainscore_vision/models/bp_resnet50_julios/setup.py +24 -0
  485. brainscore_vision/models/bp_resnet50_julios/test.py +1 -0
  486. brainscore_vision/models/clip/__init__.py +5 -0
  487. brainscore_vision/models/clip/model.py +179 -0
  488. brainscore_vision/models/clip/requirements.txt +4 -0
  489. brainscore_vision/models/clip/test.py +1 -0
  490. brainscore_vision/models/clipvision/__init__.py +5 -0
  491. brainscore_vision/models/clipvision/model.py +179 -0
  492. brainscore_vision/models/clipvision/requirements.txt +4 -0
  493. brainscore_vision/models/clipvision/test.py +1 -0
  494. brainscore_vision/models/cornet_s/__init__.py +8 -0
  495. brainscore_vision/models/cornet_s/helpers/helpers.py +215 -0
  496. brainscore_vision/models/cornet_s/model.py +77 -0
  497. brainscore_vision/models/cornet_s/requirements.txt +7 -0
  498. brainscore_vision/models/cornet_s/test.py +8 -0
  499. brainscore_vision/models/cornet_s_ynshah/__init__.py +388 -0
  500. brainscore_vision/models/cornet_s_ynshah/model.py +192 -0
  501. brainscore_vision/models/cornet_s_ynshah/setup.py +24 -0
  502. brainscore_vision/models/cornet_s_ynshah/test.py +0 -0
  503. brainscore_vision/models/custom_model_cv_18_dagger_408/__init__.py +7 -0
  504. brainscore_vision/models/custom_model_cv_18_dagger_408/model.py +75 -0
  505. brainscore_vision/models/custom_model_cv_18_dagger_408/requirements.txt +4 -0
  506. brainscore_vision/models/custom_model_cv_18_dagger_408/test.py +8 -0
  507. brainscore_vision/models/cv_18_dagger_408_pretrained/__init__.py +8 -0
  508. brainscore_vision/models/cv_18_dagger_408_pretrained/model.py +57 -0
  509. brainscore_vision/models/cv_18_dagger_408_pretrained/requirements.txt +3 -0
  510. brainscore_vision/models/cv_18_dagger_408_pretrained/test.py +25 -0
  511. brainscore_vision/models/cvt_cvt_w24_384_in22k_finetuned_in1k_4/__init__.py +9 -0
  512. brainscore_vision/models/cvt_cvt_w24_384_in22k_finetuned_in1k_4/model.py +134 -0
  513. brainscore_vision/models/cvt_cvt_w24_384_in22k_finetuned_in1k_4/requirements.txt +4 -0
  514. brainscore_vision/models/cvt_cvt_w24_384_in22k_finetuned_in1k_4/test.py +8 -0
  515. brainscore_vision/models/dbp_resnet50_julios/__init__.py +5 -0
  516. brainscore_vision/models/dbp_resnet50_julios/model.py +52 -0
  517. brainscore_vision/models/dbp_resnet50_julios/setup.py +24 -0
  518. brainscore_vision/models/dbp_resnet50_julios/test.py +1 -0
  519. brainscore_vision/models/densenet_201_pytorch/__init__.py +7 -0
  520. brainscore_vision/models/densenet_201_pytorch/model.py +59 -0
  521. brainscore_vision/models/densenet_201_pytorch/requirements.txt +3 -0
  522. brainscore_vision/models/densenet_201_pytorch/test.py +8 -0
  523. brainscore_vision/models/eBarlow_Vanilla/__init__.py +9 -0
  524. brainscore_vision/models/eBarlow_Vanilla/model.py +50 -0
  525. brainscore_vision/models/eBarlow_Vanilla/requirements.txt +2 -0
  526. brainscore_vision/models/eBarlow_Vanilla/setup.py +24 -0
  527. brainscore_vision/models/eBarlow_Vanilla/test.py +1 -0
  528. brainscore_vision/models/eBarlow_Vanilla_1/__init__.py +9 -0
  529. brainscore_vision/models/eBarlow_Vanilla_1/model.py +64 -0
  530. brainscore_vision/models/eBarlow_Vanilla_1/setup.py +24 -0
  531. brainscore_vision/models/eBarlow_Vanilla_1/test.py +1 -0
  532. brainscore_vision/models/eBarlow_Vanilla_1_full/__init__.py +9 -0
  533. brainscore_vision/models/eBarlow_Vanilla_1_full/model.py +84 -0
  534. brainscore_vision/models/eBarlow_Vanilla_1_full/setup.py +25 -0
  535. brainscore_vision/models/eBarlow_Vanilla_1_full/test.py +1 -0
  536. brainscore_vision/models/eBarlow_Vanilla_2/__init__.py +9 -0
  537. brainscore_vision/models/eBarlow_Vanilla_2/model.py +64 -0
  538. brainscore_vision/models/eBarlow_Vanilla_2/setup.py +24 -0
  539. brainscore_vision/models/eBarlow_Vanilla_2/test.py +1 -0
  540. brainscore_vision/models/eBarlow_augself_linear_1/__init__.py +9 -0
  541. brainscore_vision/models/eBarlow_augself_linear_1/model.py +65 -0
  542. brainscore_vision/models/eBarlow_augself_linear_1/setup.py +24 -0
  543. brainscore_vision/models/eBarlow_augself_linear_1/test.py +1 -0
  544. brainscore_vision/models/eBarlow_augself_mlp_1/__init__.py +9 -0
  545. brainscore_vision/models/eBarlow_augself_mlp_1/model.py +65 -0
  546. brainscore_vision/models/eBarlow_augself_mlp_1/setup.py +24 -0
  547. brainscore_vision/models/eBarlow_augself_mlp_1/test.py +1 -0
  548. brainscore_vision/models/eBarlow_lmda_0001_1/__init__.py +9 -0
  549. brainscore_vision/models/eBarlow_lmda_0001_1/model.py +65 -0
  550. brainscore_vision/models/eBarlow_lmda_0001_1/setup.py +24 -0
  551. brainscore_vision/models/eBarlow_lmda_0001_1/test.py +1 -0
  552. brainscore_vision/models/eBarlow_lmda_001_1/__init__.py +9 -0
  553. brainscore_vision/models/eBarlow_lmda_001_1/model.py +65 -0
  554. brainscore_vision/models/eBarlow_lmda_001_1/setup.py +24 -0
  555. brainscore_vision/models/eBarlow_lmda_001_1/test.py +1 -0
  556. brainscore_vision/models/eBarlow_lmda_001_2/__init__.py +9 -0
  557. brainscore_vision/models/eBarlow_lmda_001_2/model.py +65 -0
  558. brainscore_vision/models/eBarlow_lmda_001_2/setup.py +24 -0
  559. brainscore_vision/models/eBarlow_lmda_001_2/test.py +1 -0
  560. brainscore_vision/models/eBarlow_lmda_001_3/__init__.py +9 -0
  561. brainscore_vision/models/eBarlow_lmda_001_3/model.py +65 -0
  562. brainscore_vision/models/eBarlow_lmda_001_3/setup.py +24 -0
  563. brainscore_vision/models/eBarlow_lmda_001_3/test.py +1 -0
  564. brainscore_vision/models/eBarlow_lmda_01/__init__.py +9 -0
  565. brainscore_vision/models/eBarlow_lmda_01/model.py +50 -0
  566. brainscore_vision/models/eBarlow_lmda_01/requirements.txt +2 -0
  567. brainscore_vision/models/eBarlow_lmda_01/setup.py +24 -0
  568. brainscore_vision/models/eBarlow_lmda_01/test.py +1 -0
  569. brainscore_vision/models/eBarlow_lmda_01_1/__init__.py +9 -0
  570. brainscore_vision/models/eBarlow_lmda_01_1/model.py +65 -0
  571. brainscore_vision/models/eBarlow_lmda_01_1/setup.py +24 -0
  572. brainscore_vision/models/eBarlow_lmda_01_1/test.py +1 -0
  573. brainscore_vision/models/eBarlow_lmda_01_2/__init__.py +9 -0
  574. brainscore_vision/models/eBarlow_lmda_01_2/model.py +65 -0
  575. brainscore_vision/models/eBarlow_lmda_01_2/setup.py +24 -0
  576. brainscore_vision/models/eBarlow_lmda_01_2/test.py +1 -0
  577. brainscore_vision/models/eBarlow_lmda_02_1/__init__.py +9 -0
  578. brainscore_vision/models/eBarlow_lmda_02_1/model.py +65 -0
  579. brainscore_vision/models/eBarlow_lmda_02_1/setup.py +24 -0
  580. brainscore_vision/models/eBarlow_lmda_02_1/test.py +1 -0
  581. brainscore_vision/models/eBarlow_lmda_02_1000ep/__init__.py +9 -0
  582. brainscore_vision/models/eBarlow_lmda_02_1000ep/model.py +84 -0
  583. brainscore_vision/models/eBarlow_lmda_02_1000ep/setup.py +25 -0
  584. brainscore_vision/models/eBarlow_lmda_02_1000ep/test.py +1 -0
  585. brainscore_vision/models/eBarlow_lmda_02_1_full/__init__.py +9 -0
  586. brainscore_vision/models/eBarlow_lmda_02_1_full/model.py +85 -0
  587. brainscore_vision/models/eBarlow_lmda_02_1_full/setup.py +25 -0
  588. brainscore_vision/models/eBarlow_lmda_02_1_full/test.py +1 -0
  589. brainscore_vision/models/eBarlow_lmda_02_200_full/__init__.py +9 -0
  590. brainscore_vision/models/eBarlow_lmda_02_200_full/model.py +85 -0
  591. brainscore_vision/models/eBarlow_lmda_02_200_full/setup.py +25 -0
  592. brainscore_vision/models/eBarlow_lmda_02_200_full/test.py +1 -0
  593. brainscore_vision/models/eBarlow_lmda_03_1/__init__.py +9 -0
  594. brainscore_vision/models/eBarlow_lmda_03_1/model.py +65 -0
  595. brainscore_vision/models/eBarlow_lmda_03_1/setup.py +24 -0
  596. brainscore_vision/models/eBarlow_lmda_03_1/test.py +1 -0
  597. brainscore_vision/models/eBarlow_lmda_04_1/__init__.py +9 -0
  598. brainscore_vision/models/eBarlow_lmda_04_1/model.py +65 -0
  599. brainscore_vision/models/eBarlow_lmda_04_1/setup.py +24 -0
  600. brainscore_vision/models/eBarlow_lmda_04_1/test.py +1 -0
  601. brainscore_vision/models/eBarlow_lmda_05_1/__init__.py +9 -0
  602. brainscore_vision/models/eBarlow_lmda_05_1/model.py +65 -0
  603. brainscore_vision/models/eBarlow_lmda_05_1/setup.py +24 -0
  604. brainscore_vision/models/eBarlow_lmda_05_1/test.py +1 -0
  605. brainscore_vision/models/eMMCR_Mom_Vanilla_1/__init__.py +9 -0
  606. brainscore_vision/models/eMMCR_Mom_Vanilla_1/model.py +64 -0
  607. brainscore_vision/models/eMMCR_Mom_Vanilla_1/setup.py +24 -0
  608. brainscore_vision/models/eMMCR_Mom_Vanilla_1/test.py +1 -0
  609. brainscore_vision/models/eMMCR_Mom_Vanilla_2/__init__.py +9 -0
  610. brainscore_vision/models/eMMCR_Mom_Vanilla_2/model.py +64 -0
  611. brainscore_vision/models/eMMCR_Mom_Vanilla_2/setup.py +24 -0
  612. brainscore_vision/models/eMMCR_Mom_Vanilla_2/test.py +1 -0
  613. brainscore_vision/models/eMMCR_Mom_lmda_0001_1/__init__.py +9 -0
  614. brainscore_vision/models/eMMCR_Mom_lmda_0001_1/model.py +65 -0
  615. brainscore_vision/models/eMMCR_Mom_lmda_0001_1/setup.py +24 -0
  616. brainscore_vision/models/eMMCR_Mom_lmda_0001_1/test.py +1 -0
  617. brainscore_vision/models/eMMCR_Mom_lmda_001_1/__init__.py +9 -0
  618. brainscore_vision/models/eMMCR_Mom_lmda_001_1/model.py +65 -0
  619. brainscore_vision/models/eMMCR_Mom_lmda_001_1/setup.py +24 -0
  620. brainscore_vision/models/eMMCR_Mom_lmda_001_1/test.py +1 -0
  621. brainscore_vision/models/eMMCR_Mom_lmda_01_1/__init__.py +9 -0
  622. brainscore_vision/models/eMMCR_Mom_lmda_01_1/model.py +65 -0
  623. brainscore_vision/models/eMMCR_Mom_lmda_01_1/setup.py +24 -0
  624. brainscore_vision/models/eMMCR_Mom_lmda_01_1/test.py +1 -0
  625. brainscore_vision/models/eMMCR_Mom_lmda_01_2/__init__.py +9 -0
  626. brainscore_vision/models/eMMCR_Mom_lmda_01_2/model.py +65 -0
  627. brainscore_vision/models/eMMCR_Mom_lmda_01_2/setup.py +24 -0
  628. brainscore_vision/models/eMMCR_Mom_lmda_01_2/test.py +1 -0
  629. brainscore_vision/models/eMMCR_Mom_lmda_02_1/__init__.py +9 -0
  630. brainscore_vision/models/eMMCR_Mom_lmda_02_1/model.py +65 -0
  631. brainscore_vision/models/eMMCR_Mom_lmda_02_1/setup.py +24 -0
  632. brainscore_vision/models/eMMCR_Mom_lmda_02_1/test.py +1 -0
  633. brainscore_vision/models/eMMCR_Mom_lmda_03_1/__init__.py +9 -0
  634. brainscore_vision/models/eMMCR_Mom_lmda_03_1/model.py +65 -0
  635. brainscore_vision/models/eMMCR_Mom_lmda_03_1/setup.py +24 -0
  636. brainscore_vision/models/eMMCR_Mom_lmda_03_1/test.py +1 -0
  637. brainscore_vision/models/eMMCR_Mom_lmda_04_1/__init__.py +9 -0
  638. brainscore_vision/models/eMMCR_Mom_lmda_04_1/model.py +65 -0
  639. brainscore_vision/models/eMMCR_Mom_lmda_04_1/setup.py +24 -0
  640. brainscore_vision/models/eMMCR_Mom_lmda_04_1/test.py +1 -0
  641. brainscore_vision/models/eMMCR_Mom_lmda_05_1/__init__.py +9 -0
  642. brainscore_vision/models/eMMCR_Mom_lmda_05_1/model.py +65 -0
  643. brainscore_vision/models/eMMCR_Mom_lmda_05_1/setup.py +24 -0
  644. brainscore_vision/models/eMMCR_Mom_lmda_05_1/test.py +1 -0
  645. brainscore_vision/models/eMMCR_Vanilla/__init__.py +9 -0
  646. brainscore_vision/models/eMMCR_Vanilla/model.py +50 -0
  647. brainscore_vision/models/eMMCR_Vanilla/setup.py +24 -0
  648. brainscore_vision/models/eMMCR_Vanilla/test.py +1 -0
  649. brainscore_vision/models/eMMCR_VanillaV2/__init__.py +9 -0
  650. brainscore_vision/models/eMMCR_VanillaV2/model.py +50 -0
  651. brainscore_vision/models/eMMCR_VanillaV2/setup.py +24 -0
  652. brainscore_vision/models/eMMCR_VanillaV2/test.py +1 -0
  653. brainscore_vision/models/eMMCR_Vanilla_1/__init__.py +9 -0
  654. brainscore_vision/models/eMMCR_Vanilla_1/model.py +64 -0
  655. brainscore_vision/models/eMMCR_Vanilla_1/setup.py +24 -0
  656. brainscore_vision/models/eMMCR_Vanilla_1/test.py +1 -0
  657. brainscore_vision/models/eMMCR_Vanilla_2/__init__.py +9 -0
  658. brainscore_vision/models/eMMCR_Vanilla_2/model.py +64 -0
  659. brainscore_vision/models/eMMCR_Vanilla_2/setup.py +24 -0
  660. brainscore_vision/models/eMMCR_Vanilla_2/test.py +1 -0
  661. brainscore_vision/models/eMMCR_lmda_01/__init__.py +9 -0
  662. brainscore_vision/models/eMMCR_lmda_01/model.py +50 -0
  663. brainscore_vision/models/eMMCR_lmda_01/setup.py +24 -0
  664. brainscore_vision/models/eMMCR_lmda_01/test.py +1 -0
  665. brainscore_vision/models/eMMCR_lmda_01V2/__init__.py +9 -0
  666. brainscore_vision/models/eMMCR_lmda_01V2/model.py +50 -0
  667. brainscore_vision/models/eMMCR_lmda_01V2/requirements.txt +2 -0
  668. brainscore_vision/models/eMMCR_lmda_01V2/setup.py +24 -0
  669. brainscore_vision/models/eMMCR_lmda_01V2/test.py +1 -0
  670. brainscore_vision/models/eMMCR_lmda_01_1/__init__.py +9 -0
  671. brainscore_vision/models/eMMCR_lmda_01_1/model.py +65 -0
  672. brainscore_vision/models/eMMCR_lmda_01_1/setup.py +24 -0
  673. brainscore_vision/models/eMMCR_lmda_01_1/test.py +1 -0
  674. brainscore_vision/models/eMMCR_lmda_01_2/__init__.py +9 -0
  675. brainscore_vision/models/eMMCR_lmda_01_2/model.py +65 -0
  676. brainscore_vision/models/eMMCR_lmda_01_2/setup.py +24 -0
  677. brainscore_vision/models/eMMCR_lmda_01_2/test.py +1 -0
  678. brainscore_vision/models/eMMCR_lmda_01_3/__init__.py +9 -0
  679. brainscore_vision/models/eMMCR_lmda_01_3/model.py +65 -0
  680. brainscore_vision/models/eMMCR_lmda_01_3/setup.py +24 -0
  681. brainscore_vision/models/eMMCR_lmda_01_3/test.py +1 -0
  682. brainscore_vision/models/eSimCLR_Vanilla_1/__init__.py +9 -0
  683. brainscore_vision/models/eSimCLR_Vanilla_1/model.py +64 -0
  684. brainscore_vision/models/eSimCLR_Vanilla_1/setup.py +24 -0
  685. brainscore_vision/models/eSimCLR_Vanilla_1/test.py +1 -0
  686. brainscore_vision/models/eSimCLR_Vanilla_2/__init__.py +9 -0
  687. brainscore_vision/models/eSimCLR_Vanilla_2/model.py +64 -0
  688. brainscore_vision/models/eSimCLR_Vanilla_2/setup.py +24 -0
  689. brainscore_vision/models/eSimCLR_Vanilla_2/test.py +1 -0
  690. brainscore_vision/models/eSimCLR_lmda_0001_1/__init__.py +9 -0
  691. brainscore_vision/models/eSimCLR_lmda_0001_1/model.py +65 -0
  692. brainscore_vision/models/eSimCLR_lmda_0001_1/setup.py +24 -0
  693. brainscore_vision/models/eSimCLR_lmda_0001_1/test.py +1 -0
  694. brainscore_vision/models/eSimCLR_lmda_001_1/__init__.py +9 -0
  695. brainscore_vision/models/eSimCLR_lmda_001_1/model.py +65 -0
  696. brainscore_vision/models/eSimCLR_lmda_001_1/setup.py +24 -0
  697. brainscore_vision/models/eSimCLR_lmda_001_1/test.py +1 -0
  698. brainscore_vision/models/eSimCLR_lmda_01_1/__init__.py +9 -0
  699. brainscore_vision/models/eSimCLR_lmda_01_1/model.py +65 -0
  700. brainscore_vision/models/eSimCLR_lmda_01_1/setup.py +24 -0
  701. brainscore_vision/models/eSimCLR_lmda_01_1/test.py +1 -0
  702. brainscore_vision/models/eSimCLR_lmda_01_2/__init__.py +9 -0
  703. brainscore_vision/models/eSimCLR_lmda_01_2/model.py +65 -0
  704. brainscore_vision/models/eSimCLR_lmda_01_2/setup.py +24 -0
  705. brainscore_vision/models/eSimCLR_lmda_01_2/test.py +1 -0
  706. brainscore_vision/models/eSimCLR_lmda_02_1/__init__.py +9 -0
  707. brainscore_vision/models/eSimCLR_lmda_02_1/model.py +65 -0
  708. brainscore_vision/models/eSimCLR_lmda_02_1/setup.py +24 -0
  709. brainscore_vision/models/eSimCLR_lmda_02_1/test.py +1 -0
  710. brainscore_vision/models/eSimCLR_lmda_02_1_1/__init__.py +9 -0
  711. brainscore_vision/models/eSimCLR_lmda_02_1_1/model.py +65 -0
  712. brainscore_vision/models/eSimCLR_lmda_02_1_1/setup.py +24 -0
  713. brainscore_vision/models/eSimCLR_lmda_02_1_1/test.py +1 -0
  714. brainscore_vision/models/eSimCLR_lmda_03_1/__init__.py +9 -0
  715. brainscore_vision/models/eSimCLR_lmda_03_1/model.py +65 -0
  716. brainscore_vision/models/eSimCLR_lmda_03_1/setup.py +24 -0
  717. brainscore_vision/models/eSimCLR_lmda_03_1/test.py +1 -0
  718. brainscore_vision/models/eSimCLR_lmda_04_1/__init__.py +9 -0
  719. brainscore_vision/models/eSimCLR_lmda_04_1/model.py +65 -0
  720. brainscore_vision/models/eSimCLR_lmda_04_1/setup.py +24 -0
  721. brainscore_vision/models/eSimCLR_lmda_04_1/test.py +1 -0
  722. brainscore_vision/models/eSimCLR_lmda_04_1_1/__init__.py +9 -0
  723. brainscore_vision/models/eSimCLR_lmda_04_1_1/model.py +65 -0
  724. brainscore_vision/models/eSimCLR_lmda_04_1_1/setup.py +24 -0
  725. brainscore_vision/models/eSimCLR_lmda_04_1_1/test.py +1 -0
  726. brainscore_vision/models/eSimCLR_lmda_05_1/__init__.py +9 -0
  727. brainscore_vision/models/eSimCLR_lmda_05_1/model.py +65 -0
  728. brainscore_vision/models/eSimCLR_lmda_05_1/setup.py +24 -0
  729. brainscore_vision/models/eSimCLR_lmda_05_1/test.py +1 -0
  730. brainscore_vision/models/effnetb1_272x240/__init__.py +5 -0
  731. brainscore_vision/models/effnetb1_272x240/model.py +126 -0
  732. brainscore_vision/models/effnetb1_272x240/requirements.txt +3 -0
  733. brainscore_vision/models/effnetb1_272x240/test.py +9 -0
  734. brainscore_vision/models/effnetb1_cutmix_augmix_sam_e1_5avg_424x377/__init__.py +9 -0
  735. brainscore_vision/models/effnetb1_cutmix_augmix_sam_e1_5avg_424x377/model.py +111 -0
  736. brainscore_vision/models/effnetb1_cutmix_augmix_sam_e1_5avg_424x377/requirements.txt +6 -0
  737. brainscore_vision/models/effnetb1_cutmix_augmix_sam_e1_5avg_424x377/test.py +8 -0
  738. brainscore_vision/models/effnetb1_cutmixpatch_SAM_robust32_avge6e8e9e10_manylayers_324x288/__init__.py +5 -0
  739. brainscore_vision/models/effnetb1_cutmixpatch_SAM_robust32_avge6e8e9e10_manylayers_324x288/model.py +142 -0
  740. brainscore_vision/models/effnetb1_cutmixpatch_SAM_robust32_avge6e8e9e10_manylayers_324x288/requirements.txt +5 -0
  741. brainscore_vision/models/effnetb1_cutmixpatch_SAM_robust32_avge6e8e9e10_manylayers_324x288/test.py +8 -0
  742. brainscore_vision/models/effnetb1_cutmixpatch_augmix_robust32_avge4e7_manylayers_324x288/__init__.py +9 -0
  743. brainscore_vision/models/effnetb1_cutmixpatch_augmix_robust32_avge4e7_manylayers_324x288/model.py +140 -0
  744. brainscore_vision/models/effnetb1_cutmixpatch_augmix_robust32_avge4e7_manylayers_324x288/requirements.txt +5 -0
  745. brainscore_vision/models/effnetb1_cutmixpatch_augmix_robust32_avge4e7_manylayers_324x288/test.py +8 -0
  746. brainscore_vision/models/focalnet_tiny_in1k_submission/__init__.py +5 -0
  747. brainscore_vision/models/focalnet_tiny_in1k_submission/model.py +62 -0
  748. brainscore_vision/models/focalnet_tiny_in1k_submission/requirements.txt +3 -0
  749. brainscore_vision/models/focalnet_tiny_in1k_submission/test.py +8 -0
  750. brainscore_vision/models/hmax/__init__.py +7 -0
  751. brainscore_vision/models/hmax/helpers/hmax.py +438 -0
  752. brainscore_vision/models/hmax/helpers/pytorch.py +216 -0
  753. brainscore_vision/models/hmax/model.py +69 -0
  754. brainscore_vision/models/hmax/requirements.txt +5 -0
  755. brainscore_vision/models/hmax/test.py +8 -0
  756. brainscore_vision/models/inception_v3_pytorch/__init__.py +7 -0
  757. brainscore_vision/models/inception_v3_pytorch/model.py +68 -0
  758. brainscore_vision/models/inception_v3_pytorch/requirements.txt +3 -0
  759. brainscore_vision/models/inception_v3_pytorch/test.py +8 -0
  760. brainscore_vision/models/mobilenet_v2_1_4_224_pytorch/__init__.py +7 -0
  761. brainscore_vision/models/mobilenet_v2_1_4_224_pytorch/model.py +60 -0
  762. brainscore_vision/models/mobilenet_v2_1_4_224_pytorch/requirements.txt +3 -0
  763. brainscore_vision/models/mobilenet_v2_1_4_224_pytorch/test.py +8 -0
  764. brainscore_vision/models/mobilevit_small/__init__.py +7 -0
  765. brainscore_vision/models/mobilevit_small/model.py +49 -0
  766. brainscore_vision/models/mobilevit_small/requirements.txt +3 -0
  767. brainscore_vision/models/mobilevit_small/test.py +8 -0
  768. brainscore_vision/models/pixels/__init__.py +8 -0
  769. brainscore_vision/models/pixels/model.py +35 -0
  770. brainscore_vision/models/pixels/test.py +15 -0
  771. brainscore_vision/models/pnasnet_large_pytorch/__init__.py +7 -0
  772. brainscore_vision/models/pnasnet_large_pytorch/model.py +59 -0
  773. brainscore_vision/models/pnasnet_large_pytorch/requirements.txt +3 -0
  774. brainscore_vision/models/pnasnet_large_pytorch/test.py +8 -0
  775. brainscore_vision/models/r101_eBarlow_Vanilla_1/__init__.py +9 -0
  776. brainscore_vision/models/r101_eBarlow_Vanilla_1/model.py +64 -0
  777. brainscore_vision/models/r101_eBarlow_Vanilla_1/setup.py +25 -0
  778. brainscore_vision/models/r101_eBarlow_Vanilla_1/test.py +1 -0
  779. brainscore_vision/models/r101_eBarlow_lmda_01_1/__init__.py +9 -0
  780. brainscore_vision/models/r101_eBarlow_lmda_01_1/model.py +65 -0
  781. brainscore_vision/models/r101_eBarlow_lmda_01_1/setup.py +25 -0
  782. brainscore_vision/models/r101_eBarlow_lmda_01_1/test.py +1 -0
  783. brainscore_vision/models/r101_eBarlow_lmda_02_1/__init__.py +9 -0
  784. brainscore_vision/models/r101_eBarlow_lmda_02_1/model.py +65 -0
  785. brainscore_vision/models/r101_eBarlow_lmda_02_1/setup.py +25 -0
  786. brainscore_vision/models/r101_eBarlow_lmda_02_1/test.py +1 -0
  787. brainscore_vision/models/r101_eBarlow_lmda_02_1_copy/__init__.py +9 -0
  788. brainscore_vision/models/r101_eBarlow_lmda_02_1_copy/model.py +67 -0
  789. brainscore_vision/models/r101_eBarlow_lmda_02_1_copy/setup.py +25 -0
  790. brainscore_vision/models/r101_eBarlow_lmda_02_1_copy/test.py +1 -0
  791. brainscore_vision/models/r34_eMMCR_Mom_Vanilla_1/__init__.py +9 -0
  792. brainscore_vision/models/r34_eMMCR_Mom_Vanilla_1/model.py +66 -0
  793. brainscore_vision/models/r34_eMMCR_Mom_Vanilla_1/setup.py +25 -0
  794. brainscore_vision/models/r34_eMMCR_Mom_Vanilla_1/test.py +1 -0
  795. brainscore_vision/models/r34_eMMCR_Mom_lmda_01_1/__init__.py +9 -0
  796. brainscore_vision/models/r34_eMMCR_Mom_lmda_01_1/model.py +66 -0
  797. brainscore_vision/models/r34_eMMCR_Mom_lmda_01_1/setup.py +25 -0
  798. brainscore_vision/models/r34_eMMCR_Mom_lmda_01_1/test.py +1 -0
  799. brainscore_vision/models/r34_eMMCR_Mom_lmda_02_1/__init__.py +9 -0
  800. brainscore_vision/models/r34_eMMCR_Mom_lmda_02_1/model.py +66 -0
  801. brainscore_vision/models/r34_eMMCR_Mom_lmda_02_1/setup.py +25 -0
  802. brainscore_vision/models/r34_eMMCR_Mom_lmda_02_1/test.py +1 -0
  803. brainscore_vision/models/r50_tvpt/__init__.py +9 -0
  804. brainscore_vision/models/r50_tvpt/model.py +47 -0
  805. brainscore_vision/models/r50_tvpt/setup.py +24 -0
  806. brainscore_vision/models/r50_tvpt/test.py +1 -0
  807. brainscore_vision/models/regnet/__init__.py +14 -0
  808. brainscore_vision/models/regnet/model.py +17 -0
  809. brainscore_vision/models/regnet/requirements.txt +2 -0
  810. brainscore_vision/models/regnet/test.py +17 -0
  811. brainscore_vision/models/resnet18_imagenet21kP/__init__.py +6 -0
  812. brainscore_vision/models/resnet18_imagenet21kP/model.py +119 -0
  813. brainscore_vision/models/resnet18_imagenet21kP/setup.py +18 -0
  814. brainscore_vision/models/resnet18_imagenet21kP/test.py +0 -0
  815. brainscore_vision/models/resnet50_eMMCR_Vanilla/__init__.py +5 -0
  816. brainscore_vision/models/resnet50_eMMCR_Vanilla/model.py +59 -0
  817. brainscore_vision/models/resnet50_eMMCR_Vanilla/setup.py +24 -0
  818. brainscore_vision/models/resnet50_eMMCR_Vanilla/test.py +1 -0
  819. brainscore_vision/models/resnet50_eMMCR_VanillaV2/__init__.py +9 -0
  820. brainscore_vision/models/resnet50_eMMCR_VanillaV2/model.py +72 -0
  821. brainscore_vision/models/resnet50_eMMCR_VanillaV2/setup.py +24 -0
  822. brainscore_vision/models/resnet50_eMMCR_VanillaV2/test.py +1 -0
  823. brainscore_vision/models/resnet50_eMMCR_eqp10_lm1/__init__.py +9 -0
  824. brainscore_vision/models/resnet50_eMMCR_eqp10_lm1/model.py +72 -0
  825. brainscore_vision/models/resnet50_eMMCR_eqp10_lm1/setup.py +24 -0
  826. brainscore_vision/models/resnet50_eMMCR_eqp10_lm1/test.py +1 -0
  827. brainscore_vision/models/resnet50_julios/__init__.py +5 -0
  828. brainscore_vision/models/resnet50_julios/model.py +54 -0
  829. brainscore_vision/models/resnet50_julios/setup.py +24 -0
  830. brainscore_vision/models/resnet50_julios/test.py +1 -0
  831. brainscore_vision/models/resnet50_tutorial/__init__.py +5 -0
  832. brainscore_vision/models/resnet50_tutorial/model.py +34 -0
  833. brainscore_vision/models/resnet50_tutorial/requirements.txt +2 -0
  834. brainscore_vision/models/resnet50_tutorial/test.py +8 -0
  835. brainscore_vision/models/resnet_152_v2_pytorch/__init__.py +7 -0
  836. brainscore_vision/models/resnet_152_v2_pytorch/model.py +59 -0
  837. brainscore_vision/models/resnet_152_v2_pytorch/requirements.txt +2 -0
  838. brainscore_vision/models/resnet_152_v2_pytorch/test.py +8 -0
  839. brainscore_vision/models/resnet_50_robust/__init__.py +7 -0
  840. brainscore_vision/models/resnet_50_robust/model.py +55 -0
  841. brainscore_vision/models/resnet_50_robust/requirements.txt +3 -0
  842. brainscore_vision/models/resnet_50_robust/test.py +8 -0
  843. brainscore_vision/models/resnext101_32x16d_wsl/__init__.py +7 -0
  844. brainscore_vision/models/resnext101_32x16d_wsl/model.py +38 -0
  845. brainscore_vision/models/resnext101_32x16d_wsl/requirements.txt +2 -0
  846. brainscore_vision/models/resnext101_32x16d_wsl/test.py +8 -0
  847. brainscore_vision/models/resnext101_32x32d_wsl/__init__.py +7 -0
  848. brainscore_vision/models/resnext101_32x32d_wsl/model.py +40 -0
  849. brainscore_vision/models/resnext101_32x32d_wsl/requirements.txt +2 -0
  850. brainscore_vision/models/resnext101_32x32d_wsl/test.py +8 -0
  851. brainscore_vision/models/resnext101_32x48d_wsl/__init__.py +7 -0
  852. brainscore_vision/models/resnext101_32x48d_wsl/model.py +38 -0
  853. brainscore_vision/models/resnext101_32x48d_wsl/requirements.txt +3 -0
  854. brainscore_vision/models/resnext101_32x48d_wsl/test.py +8 -0
  855. brainscore_vision/models/resnext101_32x8d_wsl/__init__.py +7 -0
  856. brainscore_vision/models/resnext101_32x8d_wsl/model.py +44 -0
  857. brainscore_vision/models/resnext101_32x8d_wsl/requirements.txt +2 -0
  858. brainscore_vision/models/resnext101_32x8d_wsl/test.py +8 -0
  859. brainscore_vision/models/temporal_model_AVID_CMA/__init__.py +17 -0
  860. brainscore_vision/models/temporal_model_AVID_CMA/model.py +92 -0
  861. brainscore_vision/models/temporal_model_AVID_CMA/requirements.txt +3 -0
  862. brainscore_vision/models/temporal_model_AVID_CMA/test.py +18 -0
  863. brainscore_vision/models/temporal_model_GDT/__init__.py +16 -0
  864. brainscore_vision/models/temporal_model_GDT/model.py +72 -0
  865. brainscore_vision/models/temporal_model_GDT/requirements.txt +3 -0
  866. brainscore_vision/models/temporal_model_GDT/test.py +17 -0
  867. brainscore_vision/models/temporal_model_S3D_text_video/__init__.py +14 -0
  868. brainscore_vision/models/temporal_model_S3D_text_video/model.py +65 -0
  869. brainscore_vision/models/temporal_model_S3D_text_video/requirements.txt +1 -0
  870. brainscore_vision/models/temporal_model_S3D_text_video/test.py +15 -0
  871. brainscore_vision/models/temporal_model_SeLaVi/__init__.py +17 -0
  872. brainscore_vision/models/temporal_model_SeLaVi/model.py +68 -0
  873. brainscore_vision/models/temporal_model_SeLaVi/requirements.txt +3 -0
  874. brainscore_vision/models/temporal_model_SeLaVi/test.py +18 -0
  875. brainscore_vision/models/temporal_model_VideoMAE/__init__.py +15 -0
  876. brainscore_vision/models/temporal_model_VideoMAE/model.py +100 -0
  877. brainscore_vision/models/temporal_model_VideoMAE/requirements.txt +6 -0
  878. brainscore_vision/models/temporal_model_VideoMAE/test.py +16 -0
  879. brainscore_vision/models/temporal_model_VideoMAEv2/__init__.py +14 -0
  880. brainscore_vision/models/temporal_model_VideoMAEv2/model.py +109 -0
  881. brainscore_vision/models/temporal_model_VideoMAEv2/requirements.txt +4 -0
  882. brainscore_vision/models/temporal_model_VideoMAEv2/test.py +16 -0
  883. brainscore_vision/models/temporal_model_mae_st/__init__.py +15 -0
  884. brainscore_vision/models/temporal_model_mae_st/model.py +120 -0
  885. brainscore_vision/models/temporal_model_mae_st/requirements.txt +3 -0
  886. brainscore_vision/models/temporal_model_mae_st/test.py +16 -0
  887. brainscore_vision/models/temporal_model_mmaction2/__init__.py +23 -0
  888. brainscore_vision/models/temporal_model_mmaction2/mmaction2.csv +24 -0
  889. brainscore_vision/models/temporal_model_mmaction2/model.py +226 -0
  890. brainscore_vision/models/temporal_model_mmaction2/requirements.txt +5 -0
  891. brainscore_vision/models/temporal_model_mmaction2/test.py +24 -0
  892. brainscore_vision/models/temporal_model_openstl/__init__.py +18 -0
  893. brainscore_vision/models/temporal_model_openstl/model.py +206 -0
  894. brainscore_vision/models/temporal_model_openstl/requirements.txt +3 -0
  895. brainscore_vision/models/temporal_model_openstl/test.py +19 -0
  896. brainscore_vision/models/temporal_model_torchvision/__init__.py +19 -0
  897. brainscore_vision/models/temporal_model_torchvision/model.py +92 -0
  898. brainscore_vision/models/temporal_model_torchvision/requirements.txt +2 -0
  899. brainscore_vision/models/temporal_model_torchvision/test.py +20 -0
  900. brainscore_vision/models/tv_efficientnet_b1/__init__.py +5 -0
  901. brainscore_vision/models/tv_efficientnet_b1/model.py +54 -0
  902. brainscore_vision/models/tv_efficientnet_b1/setup.py +24 -0
  903. brainscore_vision/models/tv_efficientnet_b1/test.py +1 -0
  904. brainscore_vision/models/voneresnet_50_non_stochastic/__init__.py +7 -0
  905. brainscore_vision/models/voneresnet_50_non_stochastic/model.py +104 -0
  906. brainscore_vision/models/voneresnet_50_non_stochastic/requirements.txt +8 -0
  907. brainscore_vision/models/voneresnet_50_non_stochastic/test.py +8 -0
  908. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/LICENSE +674 -0
  909. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/README.md +105 -0
  910. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/run.py +136 -0
  911. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/setup.py +41 -0
  912. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/train.py +383 -0
  913. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet/__init__.py +71 -0
  914. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet/back_ends.py +337 -0
  915. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet/modules.py +126 -0
  916. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet/params.py +100 -0
  917. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet/utils.py +32 -0
  918. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet/vonenet.py +68 -0
  919. brainscore_vision/models/voneresnet_50_non_stochastic/vonenet/vonenet_tutorial-activations.ipynb +352 -0
  920. brainscore_vision/models/yudixie_resnet18_240719_0/__init__.py +11 -0
  921. brainscore_vision/models/yudixie_resnet18_240719_0/model.py +60 -0
  922. brainscore_vision/models/yudixie_resnet18_240719_0/setup.py +25 -0
  923. brainscore_vision/models/yudixie_resnet18_240719_0/test.py +1 -0
  924. brainscore_vision/models/yudixie_resnet18_240719_1/__init__.py +11 -0
  925. brainscore_vision/models/yudixie_resnet18_240719_1/model.py +60 -0
  926. brainscore_vision/models/yudixie_resnet18_240719_1/setup.py +25 -0
  927. brainscore_vision/models/yudixie_resnet18_240719_1/test.py +1 -0
  928. brainscore_vision/models/yudixie_resnet18_240719_10/__init__.py +11 -0
  929. brainscore_vision/models/yudixie_resnet18_240719_10/model.py +60 -0
  930. brainscore_vision/models/yudixie_resnet18_240719_10/setup.py +25 -0
  931. brainscore_vision/models/yudixie_resnet18_240719_10/test.py +1 -0
  932. brainscore_vision/models/yudixie_resnet18_240719_2/__init__.py +11 -0
  933. brainscore_vision/models/yudixie_resnet18_240719_2/model.py +60 -0
  934. brainscore_vision/models/yudixie_resnet18_240719_2/setup.py +25 -0
  935. brainscore_vision/models/yudixie_resnet18_240719_2/test.py +1 -0
  936. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240222/__init__.py +7 -0
  937. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240222/model.py +66 -0
  938. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240222/setup.py +24 -0
  939. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240222/test.py +1 -0
  940. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240312/__init__.py +7 -0
  941. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240312/model.py +68 -0
  942. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240312/setup.py +24 -0
  943. brainscore_vision/models/yudixie_resnet50_imagenet1kpret_0_240312/test.py +1 -0
  944. brainscore_vision/submission/__init__.py +0 -0
  945. brainscore_vision/submission/actions_helpers.py +153 -0
  946. brainscore_vision/submission/config.py +7 -0
  947. brainscore_vision/submission/endpoints.py +58 -0
  948. brainscore_vision/utils/__init__.py +91 -0
  949. brainscore_vision-2.1.dist-info/LICENSE +11 -0
  950. brainscore_vision-2.1.dist-info/METADATA +152 -0
  951. brainscore_vision-2.1.dist-info/RECORD +1009 -0
  952. brainscore_vision-2.1.dist-info/WHEEL +5 -0
  953. brainscore_vision-2.1.dist-info/top_level.txt +4 -0
  954. docs/Makefile +20 -0
  955. docs/source/conf.py +78 -0
  956. docs/source/index.rst +21 -0
  957. docs/source/modules/api_reference.rst +10 -0
  958. docs/source/modules/benchmarks.rst +8 -0
  959. docs/source/modules/brainscore_submission.png +0 -0
  960. docs/source/modules/developer_clarifications.rst +36 -0
  961. docs/source/modules/metrics.rst +8 -0
  962. docs/source/modules/model_interface.rst +8 -0
  963. docs/source/modules/submission.rst +112 -0
  964. docs/source/modules/tutorial_screenshots/brain-score_logo.png +0 -0
  965. docs/source/modules/tutorial_screenshots/final_submit.png +0 -0
  966. docs/source/modules/tutorial_screenshots/init_py.png +0 -0
  967. docs/source/modules/tutorial_screenshots/mms.png +0 -0
  968. docs/source/modules/tutorial_screenshots/setup.png +0 -0
  969. docs/source/modules/tutorial_screenshots/sms.png +0 -0
  970. docs/source/modules/tutorial_screenshots/subfolders.png +0 -0
  971. docs/source/modules/utils.rst +22 -0
  972. migrations/2020-12-20_pkl_to_nc.py +90 -0
  973. tests/__init__.py +6 -0
  974. tests/conftest.py +26 -0
  975. tests/test_benchmark_helpers/__init__.py +0 -0
  976. tests/test_benchmark_helpers/test_screen.py +75 -0
  977. tests/test_examples.py +41 -0
  978. tests/test_integration.py +43 -0
  979. tests/test_metric_helpers/__init__.py +0 -0
  980. tests/test_metric_helpers/test_temporal.py +80 -0
  981. tests/test_metric_helpers/test_transformations.py +171 -0
  982. tests/test_metric_helpers/test_xarray_utils.py +85 -0
  983. tests/test_model_helpers/__init__.py +6 -0
  984. tests/test_model_helpers/activations/__init__.py +0 -0
  985. tests/test_model_helpers/activations/test___init__.py +404 -0
  986. tests/test_model_helpers/brain_transformation/__init__.py +0 -0
  987. tests/test_model_helpers/brain_transformation/test___init__.py +18 -0
  988. tests/test_model_helpers/brain_transformation/test_behavior.py +181 -0
  989. tests/test_model_helpers/brain_transformation/test_neural.py +70 -0
  990. tests/test_model_helpers/brain_transformation/test_temporal.py +66 -0
  991. tests/test_model_helpers/temporal/__init__.py +0 -0
  992. tests/test_model_helpers/temporal/activations/__init__.py +0 -0
  993. tests/test_model_helpers/temporal/activations/test_extractor.py +96 -0
  994. tests/test_model_helpers/temporal/activations/test_inferencer.py +189 -0
  995. tests/test_model_helpers/temporal/activations/test_inputs.py +103 -0
  996. tests/test_model_helpers/temporal/brain_transformation/__init__.py +0 -0
  997. tests/test_model_helpers/temporal/brain_transformation/test_temporal_ops.py +122 -0
  998. tests/test_model_helpers/temporal/test_utils.py +61 -0
  999. tests/test_model_helpers/test_generic_plugin_tests.py +310 -0
  1000. tests/test_model_helpers/test_imports.py +10 -0
  1001. tests/test_model_helpers/test_s3.py +38 -0
  1002. tests/test_models.py +15 -0
  1003. tests/test_stimuli.py +0 -0
  1004. tests/test_submission/__init__.py +0 -0
  1005. tests/test_submission/mock_config.py +3 -0
  1006. tests/test_submission/test_actions_helpers.py +67 -0
  1007. tests/test_submission/test_db.py +54 -0
  1008. tests/test_submission/test_endpoints.py +125 -0
  1009. tests/test_utils.py +21 -0
@@ -0,0 +1,346 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stderr",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "/Users/ernestobocini/miniconda3/envs/brainscore/lib/python3.8/site-packages/brainscore/metrics/__init__.py:37: FutureWarning: xarray subclass Score should explicitly define __slots__\n",
13
+ " class Score(DataAssembly):\n"
14
+ ]
15
+ }
16
+ ],
17
+ "source": [
18
+ "# import general libraries\n",
19
+ "import numpy as np\n",
20
+ "import pandas as pd\n",
21
+ "import matplotlib.pyplot as plt\n",
22
+ "import os\n",
23
+ "\n",
24
+ "# import brain-score specific libraries\n",
25
+ "import brainio\n",
26
+ "from brainscore.benchmarks._neural_common import average_repetition\n",
27
+ "from brainio.assemblies import NeuroidAssembly\n",
28
+ "from brainscore.metrics.ceiling import InternalConsistency"
29
+ ]
30
+ },
31
+ {
32
+ "cell_type": "code",
33
+ "execution_count": 2,
34
+ "metadata": {},
35
+ "outputs": [],
36
+ "source": [
37
+ "VISUAL_DEGREES = 8 # da investigare\n",
38
+ "NUMBER_OF_TRIALS = 63 # da investigare\n",
39
+ "BIBTEX = \"\"\"\"\"\"\n",
40
+ "\n",
41
+ "ANIMALS = ['Oleo', 'Pico']\n",
42
+ "\n",
43
+ "CATEGORIES = ['apple', 'bear', 'bird', 'car', 'chair', 'dog', 'elephant', 'face', 'plane', 'zebra']\n",
44
+ "SILHOUETTE_DOMAINS = ['convex_hull', 'outline', 'skeleton', 'silhouette']\n",
45
+ "\n",
46
+ "STYLES = ['hvm', 'convex_hull', 'outline', 'silhouette', 'cartoon', 'line_drawing', 'mosaic', 'painting', 'sketch']\n",
47
+ "\n",
48
+ "SPLIT_NUMBER = 100\n",
49
+ "MAX_NUM_NEURONS = 71\n",
50
+ "HVM_TEST_IMAGES_NUM = 30\n",
51
+ "OOD_TEST_IMAGES_NUM = 30"
52
+ ]
53
+ },
54
+ {
55
+ "cell_type": "code",
56
+ "execution_count": 14,
57
+ "metadata": {},
58
+ "outputs": [],
59
+ "source": [
60
+ "def load_domain_transfer(average_repetitions, animal=None, region=None):\n",
61
+ " '''\n",
62
+ " Loads the domain transfer data from local folders.\n",
63
+ "\n",
64
+ " Returns:\n",
65
+ " assembly (NeuronRecordingAssembly): domain transfer data from pico\n",
66
+ " '''\n",
67
+ "\n",
68
+ "\n",
69
+ " assembly = brainio.assemblies.DataAssembly.from_files('./merged_assembly/merged_assembly.nc')\n",
70
+ " \n",
71
+ " assembly.load()\n",
72
+ " if animal is not None:\n",
73
+ " assembly = assembly.sel(animal=animal)\n",
74
+ " assembly = assembly.sel(time_bin_id=0) # 70-170ms\n",
75
+ " assembly = assembly.squeeze('time_bin')\n",
76
+ " assembly = assembly.transpose('neuroid', 'presentation')\n",
77
+ "\n",
78
+ " print('Cross-Validation to only keep observations with consistency > 0.7')\n",
79
+ " consistency = InternalConsistency()\n",
80
+ " ceiling = consistency(assembly)\n",
81
+ " neuroid_ceilings = ceiling.attrs['raw'].mean('split')\n",
82
+ " good_neuroid_indices = neuroid_ceilings > 0.7\n",
83
+ " assembly = assembly[good_neuroid_indices.values]\n",
84
+ " assembly = assembly.dropna(dim='presentation', how='all')\n",
85
+ "\n",
86
+ "\n",
87
+ " # Averaging over all repetitions\n",
88
+ " if average_repetitions:\n",
89
+ " assembly = average_repetition(assembly)\n",
90
+ " \n",
91
+ " # Delete unwanted sources\n",
92
+ " assembly = assembly.where(assembly.stimulus_source != 'GeirhosOOD', drop=True)\n",
93
+ " assembly = assembly.where(assembly.stimulus_source != 'CueConflict', drop=True)\n",
94
+ " assembly = assembly.where(assembly.stimulus_source != 'ObjectNet', drop=True)\n",
95
+ " assembly = assembly.where(assembly.object_style != 'skeleton', drop=True)\n",
96
+ " assembly = assembly.where(assembly.object_style != 'nan', drop=True)\n",
97
+ "\n",
98
+ " ## this is temporary because i havent pushed the new version of the assembly online:\n",
99
+ " csv_path = './merged_assembly/merged_stimulus_set.csv'\n",
100
+ " dir_path = './images'\n",
101
+ " stimulus_set = brainio.stimuli.StimulusSet.from_files(csv_path, dir_path)\n",
102
+ "\n",
103
+ " #filtered_stimulus_set = assembly.stimulus_set[assembly.stimulus_set.stimulus_source != 'GeirhosOOD']\n",
104
+ " filtered_stimulus_set = stimulus_set[stimulus_set.stimulus_source != 'GeirhosOOD'].copy()\n",
105
+ " filtered_stimulus_set = filtered_stimulus_set[filtered_stimulus_set.stimulus_source != 'CueConflict']\n",
106
+ " filtered_stimulus_set = filtered_stimulus_set[filtered_stimulus_set.stimulus_source != 'ObjectNet']\n",
107
+ " filtered_stimulus_set = filtered_stimulus_set[filtered_stimulus_set.object_style != 'skeleton']\n",
108
+ " filtered_stimulus_set = filtered_stimulus_set[filtered_stimulus_set.object_style.notnull()]\n",
109
+ " \n",
110
+ " # temporary, if loaded from S3, the stimulus_set is already there\n",
111
+ " assembly.attrs['stimulus_set']=filtered_stimulus_set\n",
112
+ "\n",
113
+ " assembly = assembly.transpose('presentation', 'neuroid')\n",
114
+ "\n",
115
+ " assembly = NeuroidAssembly(assembly)\n",
116
+ "\n",
117
+ " return assembly"
118
+ ]
119
+ },
120
+ {
121
+ "cell_type": "code",
122
+ "execution_count": 15,
123
+ "metadata": {},
124
+ "outputs": [
125
+ {
126
+ "name": "stdout",
127
+ "output_type": "stream",
128
+ "text": [
129
+ "Cross-Validation to only keep observations with consistency > 0.7\n"
130
+ ]
131
+ },
132
+ {
133
+ "name": "stderr",
134
+ "output_type": "stream",
135
+ "text": [
136
+ "cross-validation: 20%|██ | 2/10 [01:08<04:32, 34.06s/it]\n",
137
+ "cross-validation: 100%|██████████| 10/10 [00:21<00:00, 2.19s/it]\n"
138
+ ]
139
+ },
140
+ {
141
+ "name": "stdout",
142
+ "output_type": "stream",
143
+ "text": [
144
+ "Cross-Validation to only keep observations with consistency > 0.7\n"
145
+ ]
146
+ },
147
+ {
148
+ "name": "stderr",
149
+ "output_type": "stream",
150
+ "text": [
151
+ "cross-validation: 100%|██████████| 10/10 [00:21<00:00, 2.14s/it]\n"
152
+ ]
153
+ },
154
+ {
155
+ "name": "stdout",
156
+ "output_type": "stream",
157
+ "text": [
158
+ "Cross-Validation to only keep observations with consistency > 0.7\n"
159
+ ]
160
+ },
161
+ {
162
+ "name": "stderr",
163
+ "output_type": "stream",
164
+ "text": [
165
+ "cross-validation: 100%|██████████| 10/10 [00:22<00:00, 2.28s/it]\n"
166
+ ]
167
+ }
168
+ ],
169
+ "source": [
170
+ "assembly_oleo = load_domain_transfer(average_repetitions = False, animal='Oleo')\n",
171
+ "assembly_pico = load_domain_transfer(average_repetitions = False, animal='Pico')\n",
172
+ "merged_assembly = load_domain_transfer(average_repetitions = False, animal=None)"
173
+ ]
174
+ },
175
+ {
176
+ "cell_type": "code",
177
+ "execution_count": 16,
178
+ "metadata": {},
179
+ "outputs": [
180
+ {
181
+ "data": {
182
+ "text/plain": [
183
+ "((42427, 71), (24803, 39), (42427, 110))"
184
+ ]
185
+ },
186
+ "execution_count": 16,
187
+ "metadata": {},
188
+ "output_type": "execute_result"
189
+ }
190
+ ],
191
+ "source": [
192
+ "assembly_oleo.shape, assembly_pico.shape, merged_assembly.shape"
193
+ ]
194
+ },
195
+ {
196
+ "cell_type": "code",
197
+ "execution_count": 17,
198
+ "metadata": {},
199
+ "outputs": [
200
+ {
201
+ "name": "stderr",
202
+ "output_type": "stream",
203
+ "text": [
204
+ "cross-validation: 100%|██████████| 10/10 [00:05<00:00, 1.97it/s]\n",
205
+ "cross-validation: 100%|██████████| 10/10 [00:03<00:00, 2.81it/s]\n",
206
+ "cross-validation: 100%|██████████| 10/10 [00:05<00:00, 1.82it/s]\n"
207
+ ]
208
+ }
209
+ ],
210
+ "source": [
211
+ "os.environ['RESULTCACHING_DISABLE'] = '0'\n",
212
+ "ceiler = InternalConsistency()\n",
213
+ "ic_oleo = ceiler(assembly_oleo)\n",
214
+ "ic_pico = ceiler(assembly_pico)\n",
215
+ "ic_merged = ceiler(merged_assembly)"
216
+ ]
217
+ },
218
+ {
219
+ "cell_type": "code",
220
+ "execution_count": 18,
221
+ "metadata": {},
222
+ "outputs": [
223
+ {
224
+ "data": {
225
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABlkAAAIhCAYAAADNUNxpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABg8UlEQVR4nO3de/zX8/0//ttbh3fnUumkJCankkMfTUYltMIc9hmGJfUxFjaqtWUzOUxjK+eyA8XH2cRsDJGSxRwSi9CSc32aRil0fP3+8PP+7q2Deqne7+p6vVyel72fj+fj+Xjen295XszN4/EoKRQKhQAAAAAAALBOtqroAgAAAAAAADZFQhYAAAAAAIAiCFkAAAAAAACKIGQBAAAAAAAogpAFAAAAAACgCEIWAAAAAACAIghZAAAAAAAAiiBkAQAAAAAAKIKQBQAAAAAAoAhCFgAA2MS8+OKLOeWUU9KmTZvUqFEjderUyd57753LLrss//73vyu6vA2uT58+2X777Su6jK/s+eefT5cuXVK/fv2UlJTkiiuuWKnPn/70p5SUlOS6665b7Tjjxo1LSUlJRowYsdbP3lx+hwAAUNFKCoVCoaKLAAAA1s7vf//79O/fPzvvvHP69++f3XbbLUuXLs2zzz6b3//+9+nQoUPuueeeii5zg5o5c2YWLFiQvfbaq6JL+Ur22muvLFq0KFdeeWW23nrrbL/99mnWrFm5PsuWLUurVq3SqlWrPP3006sc54QTTsgf//jHvPvuu9lmm23W6tl9+vTJhAkT8sYbb3zV1wAAgC1a1YouAAAAWDtPPvlkfvCDH+SQQw7Jvffem9LS0rJrhxxySAYOHJgHH3ywAivcsD7++OPUqlUrO+64Y0WXsl5MmzYtp556anr27LnaPlWrVk3v3r1z2WWXZdq0aWnXrl256x9++GHuueeefOtb31rrgAUAAFh/LBcGAACbiEsuuSQlJSX53e9+Vy5g+Vz16tXzrW99q+x8xYoVueyyy7LLLruktLQ0TZo0Se/evfPOO++Uu69r165p165dnnzyyXTu3Dk1a9bM9ttvn9GjRydJ7r///uy9996pVatW2rdvv1KQM3To0JSUlOT555/PMccck3r16qV+/fo56aST8q9//atc3zvuuCOHHnpomjdvnpo1a2bXXXfNT3/60yxatKhcvz59+qROnTr5xz/+kUMPPTR169ZN9+7dy659camru+66K506dUr9+vVTq1at7LDDDunbt2+5Pm+99VZOOumkNGnSJKWlpdl1110zfPjwrFixoqzPG2+8kZKSkvzmN7/JiBEj0qZNm9SpUyf77bdfnnrqqTX95Skzbdq0HHnkkdl6661To0aN7LnnnrnxxhvLro8ZMyYlJSVZtmxZRo0alZKSkpSUlKx2vH79+iVJ2V+P/3Tbbbfl008/LXvXa6+9NgceeGCaNGmS2rVrp3379rnsssuydOnSNdb8+XuPGTNmpWslJSUZOnRoubYZM2bkhBNOKPe7vPbaa8v1WbFiRS6++OLsvPPOqVmzZho0aJA99tgjV1555RprAQCATYmZLAAAsAlYvnx5xo8fn3322SetWrVaq3t+8IMf5He/+13OPPPMHH744XnjjTdy3nnnZcKECZkyZUoaN25c1nfOnDk55ZRTMnjw4LRs2TJXX311+vbtm7fffjt//OMfc+6556Z+/fq58MILc9RRR+X1119PixYtyj3v6KOPzrHHHpvTTz89L730Us4777y8/PLL+fvf/55q1aol+exfzvfq1Stnn312ateunVdeeSWXXnppnn766YwfP77ceEuWLMm3vvWtnHbaafnpT3+aZcuWrfI9n3zyyRx33HE57rjjMnTo0NSoUSNvvvlmufH+9a9/pXPnzlmyZEkuuuiibL/99vnLX/6SQYMGZebMmRk5cmS5Ma+99trssssuZfuknHfeeenVq1dmzZqV+vXrr/Z3/uqrr6Zz585p0qRJrrrqqjRq1Cg333xz+vTpk//7v//L4MGDc9hhh+XJJ5/Mfvvtl//+7//OwIED1/jXsW3btvnGN76Rm2++Ob/61a/KfpfJZ8HLtttumx49eiT5bCm1E044IW3atEn16tXzwgsv5Je//GVeeeWV3HDDDWt8ztp6+eWX07lz52y33XYZPnx4mjVrloceeig//OEP8/777+f8889Pklx22WUZOnRofv7zn+fAAw/M0qVL88orr+TDDz9cL3UAAEClUAAAACq9OXPmFJIUjj/++LXqP3369EKSQv/+/cu1//3vfy8kKZx77rllbV26dCkkKTz77LNlbfPmzStUqVKlULNmzcK7775b1j516tRCksJVV11V1nb++ecXkhTOOeeccs+65ZZbCkkKN9988yprXLFiRWHp0qWFiRMnFpIUXnjhhbJrJ598ciFJ4YYbbljpvpNPPrnQunXrsvPf/OY3hSSFDz/8cLW/j5/+9KeFJIW///3v5dp/8IMfFEpKSgqvvvpqoVAoFGbNmlVIUmjfvn1h2bJlZf2efvrpQpLCbbfdttpnFAqFwvHHH18oLS0tvPXWW+Xae/bsWahVq1a5GpMUzjjjjDWO97nRo0cXkhTGjh1b1jZt2rRCksLPfvazVd6zfPnywtKlSws33XRToUqVKoV///vfZde++Dv8/L1Hjx690jhJCueff37ZeY8ePQotW7YszJ8/v1y/M888s1CjRo2y5xx++OGFPffcc63eDwAANlWWCwMAgM3QY489luSzpbX+07777ptdd901jz76aLn25s2bZ5999ik7b9iwYZo0aZI999yz3IyVXXfdNUny5ptvrvTME088sdz5sccem6pVq5bVkiSvv/56TjjhhDRr1ixVqlRJtWrV0qVLlyTJ9OnTVxrz29/+9pe+63/913+VPe/OO+/Mu+++u1Kf8ePHZ7fddsu+++5brr1Pnz4pFAorzaI57LDDUqVKlbLzPfbYI8mq3/uLz+nevftKs4369OmTjz/+OE8++eSXvs+qHHvssalbt2652Sg33HBDSkpKcsopp5S1Pf/88/nWt76VRo0alf1+e/funeXLl+e1114r6tn/6dNPP82jjz6ao48+OrVq1cqyZcvKjl69euXTTz8tW1Zt3333zQsvvJD+/fvnoYceyoIFC77y8wEAoLIRsgAAwCagcePGqVWrVmbNmrVW/efNm5fks/Dki1q0aFF2/XMNGzZcqV/16tVXaq9evXqSz/5l+xc1a9as3HnVqlXTqFGjsmctXLgwBxxwQP7+97/n4osvzoQJE/LMM89k7NixSZJPPvmk3P21atVKvXr11vieSXLggQfm3nvvzbJly9K7d++0bNky7dq1y2233VbWZ968eav9XXx+/T81atSo3Pnne+B8scYvWtfnrK1atWrl+OOPz4MPPpg5c+Zk2bJlufnmm9OlS5fsuOOOST7bc+aAAw7Iu+++myuvvDKTJk3KM888U7ZXypfVvjbmzZuXZcuW5eqrr061atXKHb169UqSvP/++0mSIUOG5De/+U2eeuqp9OzZM40aNUr37t3z7LPPfuU6AACgsrAnCwAAbAKqVKmS7t27569//WveeeedtGzZco39Pw8JZs+evVLf9957r9x+LOvLnDlzsu2225adL1u2LPPmzSurZfz48XnvvfcyYcKEstkrSVa7R8eaNoP/oiOPPDJHHnlkFi9enKeeeirDhg3LCSeckO233z777bdfGjVqlNmzZ69033vvvZck6+33sSGf069fv/z+97/PTTfdlLZt22bu3LkZPnx42fV77703ixYtytixY9O6deuy9qlTp37p2DVq1EiSLF68uFz7F0OhrbfeOlWqVMn3vve9nHHGGascq02bNkk+C9kGDBiQAQMG5MMPP8wjjzySc889Nz169Mjbb7+dWrVqrdV7AwBAZWYmCwAAbCKGDBmSQqGQU089NUuWLFnp+tKlS/PnP/85SXLQQQclSW6++eZyfZ555plMnz493bt3X+/13XLLLeXO77zzzixbtixdu3ZN8v9Ck89nhXzut7/97XqrobS0NF26dMmll16a5LPls5Kke/fuefnllzNlypRy/W+66aaUlJSkW7du6+X53bt3LwuTvvicWrVq5etf/3rRY3fq1Cnt2rXL6NGjM3r06NSvX7/ccmqr+v0WCoX8/ve//9KxmzZtmho1auTFF18s1/6nP/2p3HmtWrXSrVu3PP/889ljjz3SsWPHlY4vzgJKkgYNGuS///u/c8YZZ+Tf//533njjjXV5dQAAqLTMZAEAgE3Efvvtl1GjRqV///7ZZ5998oMf/CC77757li5dmueffz6/+93v0q5duxxxxBHZeeed8/3vfz9XX311ttpqq/Ts2TNvvPFGzjvvvLRq1SrnnHPOeq9v7NixqVq1ag455JC89NJLOe+889KhQ4cce+yxSZLOnTtn6623zumnn57zzz8/1apVyy233JIXXnjhKz33F7/4Rd5555107949LVu2zIcffpgrr7yy3H4v55xzTm666aYcdthhufDCC9O6devcf//9GTlyZH7wgx+kbdu2X/n9k+T888/PX/7yl3Tr1i2/+MUv0rBhw9xyyy25//77c9lll6V+/fpfafy+fftmwIABefXVV3PaaaelZs2aZdcOOeSQVK9ePd/97nczePDgfPrppxk1alQ++OCDLx23pKQkJ510Um644YbsuOOO6dChQ55++unceuutK/W98sor841vfCMHHHBAfvCDH2T77bfPRx99lH/+85/585//XLa/zRFHHJF27dqlY8eO2WabbfLmm2/miiuuSOvWrbPTTjt9pd8DAABUFkIWAADYhJx66qnZd999c/nll+fSSy/NnDlzUq1atbRt2zYnnHBCzjzzzLK+o0aNyo477pjrr78+1157berXr59vfvObGTZs2CpnG3xVY8eOzdChQzNq1KiUlJTkiCOOyBVXXFG2j0ujRo1y//33Z+DAgTnppJNSu3btHHnkkbnjjjuy9957F/3cTp065dlnn81PfvKT/Otf/0qDBg3SsWPHjB8/PrvvvnuSZJtttsnkyZMzZMiQDBkyJAsWLMgOO+yQyy67LAMGDFgv758kO++8cyZPnpxzzz03Z5xxRj755JPsuuuuGT16dPr06fOVx//e976Xn/70p1myZEn69u1b7touu+ySu+++Oz//+c9zzDHHpFGjRjnhhBMyYMCA9OzZ80vH/nzpscsuuywLFy7MQQcdlL/85S/Zfvvty/XbbbfdMmXKlFx00UX5+c9/nrlz56ZBgwbZaaedyvZlSZJu3brl7rvvzh/+8IcsWLAgzZo1yyGHHJLzzjsv1apV+8q/CwAAqAxKCoVCoaKLAAAANl1Dhw7NBRdckH/9618bZK8XAACAysqeLAAAAAAAAEUQsgAAAAAAABTBcmEAAAAAAABFMJMFAAAAAACgCEIWAAAAAACAIghZAAAAAAAAilC1oguoDFasWJH33nsvdevWTUlJSUWXAwAAAAAAVKBCoZCPPvooLVq0yFZbrX6+ipAlyXvvvZdWrVpVdBkAAAAAAEAl8vbbb6dly5arvS5kSVK3bt0kn/2y6tWrV8HVAAAAAAAAFWnBggVp1apVWX6wOkKWpGyJsHr16glZAAAAAACAJPnSLUZsfA8AAAAAAFAEIQsAAAAAAEARhCwAAAAAAABFsCcLAAAAAACV2vLly7N06dKKLoPNSJUqVVK1atUv3XPlywhZAAAAAACotBYuXJh33nknhUKhokthM1OrVq00b9481atXL3oMIQsAAAAAAJXS8uXL884776RWrVrZZpttvvKsA0iSQqGQJUuW5F//+ldmzZqVnXbaKVttVdzuKkIWAAAAAAAqpaVLl6ZQKGSbbbZJzZo1K7ocNiM1a9ZMtWrV8uabb2bJkiWpUaNGUePY+B4AAAAAgErNDBY2hGJnr5QbYz3UAQAAAAAAsMURsgAAAAAAABShQvdkGTZsWMaOHZtXXnklNWvWTOfOnXPppZdm5513LutTKBRywQUX5He/+10++OCDdOrUKddee2123333sj6LFy/OoEGDctttt+WTTz5J9+7dM3LkyLRs2bIiXgsAAAAAgA3o8nGvbdTnnXNI23Xq37Vr1+y555654oorNkxB/78xY8bk7LPPzocffrhBn8PqVehMlokTJ+aMM87IU089lXHjxmXZsmU59NBDs2jRorI+l112WUaMGJFrrrkmzzzzTJo1a5ZDDjkkH330UVmfs88+O/fcc09uv/32PPHEE1m4cGEOP/zwLF++vCJeCwAAAACALdjYsWNz0UUXbfDnHHfccXnttY0bOFFehc5kefDBB8udjx49Ok2aNMlzzz2XAw88MIVCIVdccUV+9rOf5ZhjjkmS3HjjjWnatGluvfXWnHbaaZk/f36uv/76/O///m8OPvjgJMnNN9+cVq1a5ZFHHkmPHj02+nsBAAAAALDlatiw4UZ5Ts2aNVOzZs2N8qzks5Wnli9fnqpVKzRaqFQq1Z4s8+fPT/L//gDOmjUrc+bMyaGHHlrWp7S0NF26dMnkyZOTJM8991yWLl1ark+LFi3Srl27sj5ftHjx4ixYsKDcAQAAAAAA60PXrl1z9tlnJ/ns30cPHjw4rVq1SmlpaXbaaadcf/31XzrGhAkTUlJSkvvvvz8dOnRIjRo10qlTp/zjH/8o6zNmzJg0aNCg3H333XdfOnbsmBo1aqRx48ZlExiS5IMPPkjv3r2z9dZbp1atWunZs2dmzJjxpTU89NBD6dixY0pLSzNp0qTMnDkzRx55ZJo2bZo6derkv/7rv/LII4+U3Xf11Venffv2Zef33ntvSkpKcu2115a19ejRI0OGDPnS30NlV2lClkKhkAEDBuQb3/hG2rVrlySZM2dOkqRp06bl+jZt2rTs2pw5c1K9evVsvfXWq+3zRcOGDUv9+vXLjlatWq3v1wEAAAAAgPTu3Tu33357rrrqqkyfPj3XXXdd6tSps9b3//jHP85vfvObPPPMM2nSpEm+9a1vZenSpavse//99+eYY47JYYcdlueffz6PPvpoOnbsWHa9T58+efbZZ3PfffflySefTKFQSK9evVY73ucGDx6cYcOGZfr06dljjz2ycOHC9OrVK4888kief/759OjRI0cccUTeeuutJJ+FTC+99FLef//9JJ9tHdK4ceNMnDgxSbJs2bJMnjw5Xbp0WevfQ2VVaeb0nHnmmXnxxRfzxBNPrHStpKSk3HmhUFip7YvW1GfIkCEZMGBA2fmCBQsELQAAAAAArFevvfZa7rzzzowbN65su4sddthhncY4//zzc8ghhyT5bDuNli1b5p577smxxx67Ut9f/vKXOf7443PBBReUtXXo0CFJMmPGjNx3333529/+ls6dOydJbrnllrRq1Sr33ntvvvOd76y2hgsvvLCshiRp1KhR2bhJcvHFF+eee+7JfffdlzPPPDPt2rVLo0aNMnHixHz729/OhAkTMnDgwFx++eVJkmeeeSaffvppvvGNb6zT76IyqhQzWc4666zcd999eeyxx9KyZcuy9mbNmiXJSjNS5s6dWza7pVmzZlmyZEk++OCD1fb5otLS0tSrV6/cAQAAAAAA69PUqVNTpUqVrzRjY7/99iv7uWHDhtl5550zffr01T6ve/fuq7w2ffr0VK1aNZ06dSpra9So0RrH+9x/zoZJkkWLFmXw4MHZbbfd0qBBg9SpUyevvPJK2UyWkpKSHHjggZkwYUI+/PDDvPTSSzn99NOzfPnyTJ8+PRMmTMjee++9TjN6KqsKDVkKhULOPPPMjB07NuPHj0+bNm3KXW/Tpk2aNWuWcePGlbUtWbIkEydOLEva9tlnn1SrVq1cn9mzZ2fatGllfQAAAAAAYGPbUJvSr24VpzU9r1AorLb9y1aOql27drnzH//4x7n77rvzy1/+MpMmTcrUqVPTvn37LFmypKxP165dM2HChEyaNCkdOnRIgwYNcuCBB2bixImZMGFCunbtusZnbioqNGQ544wzcvPNN+fWW29N3bp1M2fOnMyZMyeffPJJks/+oJx99tm55JJLcs8992TatGnp06dPatWqlRNOOCFJUr9+/fTr1y8DBw7Mo48+mueffz4nnXRS2rdvXzb9CgAAAAAANrb27dtnxYoVZXuRFOOpp54q+/mDDz7Ia6+9ll122WWVfffYY488+uijq7y22267ZdmyZfn73/9e1jZv3ry89tpr2XXXXdeppkmTJqVPnz45+uij0759+zRr1ixvvPFGuT6f78vyxz/+sSxQ6dKlSx555JHNZj+WpIL3ZBk1alSSrJRYjR49On369Eny2YY6n3zySfr3758PPvggnTp1ysMPP5y6deuW9b/88stTtWrVHHvssfnkk0/SvXv3jBkzJlWqVNlYrwIAAAAAbEQjp46s6BIqrf579q/oEvj/bb/99jn55JPTt2/fXHXVVenQoUPefPPNzJ07d5V7qqzKhRdemEaNGqVp06b52c9+lsaNG+eoo45aZd/zzz8/3bt3z4477pjjjz8+y5Yty1//+tcMHjw4O+20U4488siceuqp+e1vf5u6devmpz/9abbddtsceeSRSZJ77rknQ4YMySuvvLLGmr72ta9l7NixOeKII1JSUpLzzjsvK1asKNfn831ZbrnllvzpT39K8lkWMHDgwCTZLPZjSSo4ZFnd9KT/VFJSkqFDh2bo0KGr7VOjRo1cffXVufrqq9djdQAAAAAAVEbnHNK2oktYa6NGjcq5556b/v37Z968edluu+1y7rnnrvX9v/rVr/KjH/0oM2bMSIcOHXLfffelevXqq+zbtWvX3HXXXbnooovyq1/9KvXq1cuBBx5Ydn306NH50Y9+lMMPPzxLlizJgQcemAceeCDVqlVLksyfPz+vvvrql9Z0+eWXp2/fvuncuXMaN26cn/zkJ1mwYEG5PiUlJenSpUvuvffeHHDAAUk+m2lTv3797LDDDpvNXuklhbVJOjZzCxYsSP369TN//vzN5i8sAAAAAGzOzGRZvc1pJsunn36aWbNmpU2bNqlRo0ZFl7NRTZgwId26dcsHH3yQBg0aVHQ5m6U1/fla29ygQvdkAQAAAAAA2FQJWQAAAAAAYCM7/fTTU6dOnVUep59+ekWXx1qq0D1ZAAAAAABgS3ThhRdm0KBBq7xWr169NGnSZK32NadiCVkAAAAAAGAja9KkSZo0aVLRZfAVWS4MAAAAAACgCEIWAAAAAACAIghZAAAAAAAAiiBkAQAAAAAAKIKQBQAAAAAAoAhCFgAAAAAAWI+6du2as88+e7N5DqtXtaILAAAAAACAdfLYsI37vG5D1qn72LFjU61atQ1UDJWJkAUAAAAAANajhg0bVnQJG8ySJUtSvXr1ii6j0rBcGAAAAAAArEf/uYzX4sWLM3jw4LRq1SqlpaXZaaedcv3116/VOBMnTsy+++6b0tLSNG/ePD/96U+zbNmy1fZfsmRJBg8enG233Ta1a9dOp06dMmHChHJ97r777uy+++4pLS3N9ttvn+HDh3/pu5x55pkZMGBAGjdunEMOOSRJMmLEiLRv3z61a9dOq1at0r9//yxcuDBJUigUss022+Tuu+8uG2fPPfdMkyZNys6ffPLJVKtWreyeTZWQBQAAAAAANpDevXvn9ttvz1VXXZXp06fnuuuuS506db70vnfffTe9evXKf/3Xf+WFF17IqFGjcv311+fiiy9e7T2nnHJK/va3v+X222/Piy++mO985zv55je/mRkzZiRJnnvuuRx77LE5/vjj849//CNDhw7NeeedlzFjxqyxlhtvvDFVq1bN3/72t/z2t79Nkmy11Va56qqrMm3atNx4440ZP358Bg8enCQpKSnJgQceWBbwfPDBB3n55ZezdOnSvPzyy0mSCRMmZJ999lmr30VlZrkwAAAAAADYAF577bXceeedGTduXA4++OAkyQ477LBW944cOTKtWrXKNddck5KSkuyyyy5577338pOf/CS/+MUvstVW5edQzJw5M7fddlveeeedtGjRIkkyaNCgPPjggxk9enQuueSSjBgxIt27d895552XJGnbtm1efvnl/PrXv06fPn1WW8vXvva1XHbZZeXaPp+pkyRt2rTJRRddlB/84AcZOXJkks9mwPzud79Lkjz++OPp0KFDtttuu0yYMCG77bZbJkyYkK5du67V76IyM5MFAAAAAAA2gKlTp6ZKlSrp0qXLOt87ffr07LfffikpKSlr23///bNw4cK88847K/WfMmVKCoVC2rZtmzp16pQdEydOzMyZM8vG3H///cvdt//++2fGjBlZvnz5amvp2LHjSm2PPfZYDjnkkGy77bapW7duevfunXnz5mXRokVJPgtZXnrppbz//vuZOHFiunbtmq5du2bixIlZtmxZJk+eXNTvpbIxkwUAAAAAADaAmjVrFn1voVAoF7B83pZkpfYkWbFiRapUqZLnnnsuVapUKXft8yW51jTmmtSuXbvc+ZtvvplevXrl9NNPz0UXXZSGDRvmiSeeSL9+/bJ06dIkSbt27dKoUaNMnDgxEydOzIUXXphWrVrll7/8ZZ555pl88skn+cY3vvGlz67shCwAAAAAALABtG/fPitWrMjEiRPLlgtbW7vttlvuvvvucsHI5MmTU7du3Wy77bYr9d9rr72yfPnyzJ07NwcccMBqx3ziiSfKtU2ePDlt27ZdKZhZk2effTbLli3L8OHDy5Ytu/POO8v1+Xxflj/96U+ZNm1aDjjggNStWzdLly7Nddddl7333jt169Zd62dWVpYLAwAAAACADWD77bfPySefnL59++bee+/NrFmzMmHChJUCiVXp379/3n777Zx11ll55ZVX8qc//Snnn39+BgwYsNJ+LMln+6uceOKJ6d27d8aOHZtZs2blmWeeyaWXXpoHHnggSTJw4MA8+uijueiii/Laa6/lxhtvzDXXXJNBgwaVjdO9e/dcc801a6xtxx13zLJly3L11Vfn9ddfz//+7//muuuuW6lf165dc+utt2aPPfZIvXr1yoKXW265ZbPYjyUxkwUAAAAAgE1NtyEVXcFaGzVqVM4999z0798/8+bNy3bbbZdzzz33S+/bdttt88ADD+THP/5xOnTokIYNG6Zfv375+c9/vtp7Ro8enYsvvjgDBw7Mu+++m0aNGmW//fZLr169kiR777137rzzzvziF7/IRRddlObNm+fCCy8st+n9zJkz8/7776+xtj333DMjRozIpZdemiFDhuTAAw/MsGHD0rt373L9unXrluXLl5cLVLp06ZJ77713s9iPJUlKCmuz4NpmbsGCBalfv37mz5+fevXqVXQ5AAAAAMCXGDl1ZEWXUGn137N/RZew3nz66aeZNWtW2rRpkxo1alR0OWxm1vTna21zA8uFAQAAAAAAFEHIAgAAAAAAG9npp5+eOnXqrPI4/fTTK7o81pI9WQAAAAAAYCO78MILy204/59sa7HpELIAAAAAAMBG1qRJkzRp0qSiy+ArslwYAAAAAABAEYQsAAAAAAAARRCyAAAAAAAAFEHIAgAAAAAAUAQhCwAAAAAAQBGELAAAAAAAsB517do1Z599dkWXUSmMGTMmDRo0qOgyNpiqFV0AAAAAAACsi5FTR27U5/Xfs/869R87dmyqVau2gaqhMhGyAAAAAADAetSwYcOKLmGtFQqFLF++PFWrVp64YOnSpZtMSGW5MAAAAAAAWI/+c7mwxYsXZ/DgwWnVqlVKS0uz00475frrr//SMSZMmJCSkpI89NBD2WuvvVKzZs0cdNBBmTt3bv76179m1113Tb169fLd7343H3/8cdl9hUIhl112WXbYYYfUrFkzHTp0yB//+MdVjtuxY8eUlpZm0qRJ+eijj3LiiSemdu3aad68eS6//PKVlj1bsmRJBg8enG233Ta1a9dOp06dMmHChHJ1jxkzJtttt11q1aqVo48+OvPmzVvje77xxhspKSnJnXfema5du6ZGjRq5+eabM2/evHz3u99Ny5YtU6tWrbRv3z633XZb2X1//vOf06BBg6xYsSJJMnXq1JSUlOTHP/5xWZ/TTjst3/3ud7/0d/1VCFkAAAAAAGAD6d27d26//fZcddVVmT59eq677rrUqVNnre8fOnRorrnmmkyePDlvv/12jj322FxxxRW59dZbc//992fcuHG5+uqry/r//Oc/z+jRozNq1Ki89NJLOeecc3LSSSdl4sSJ5cYdPHhwhg0blunTp2ePPfbIgAED8re//S333Xdfxo0bl0mTJmXKlCnl7jnllFPyt7/9LbfffntefPHFfOc738k3v/nNzJgxI0ny97//PX379k3//v0zderUdOvWLRdffPFavedPfvKT/PCHP8z06dPTo0ePfPrpp9lnn33yl7/8JdOmTcv3v//9fO9738vf//73JMmBBx6Yjz76KM8//3ySZOLEiWncuHG595wwYUK6dOmy1r/rYlSe+T8AAAAAALAZee2113LnnXdm3LhxOfjgg5MkO+ywwzqNcfHFF2f//fdPkvTr1y9DhgzJzJkzy8b57//+7zz22GP5yU9+kkWLFmXEiBEZP3589ttvv7LnPfHEE/ntb39bLnC48MILc8ghhyRJPvroo9x444259dZb07179yTJ6NGj06JFi7L+M2fOzG233ZZ33nmnrH3QoEF58MEHM3r06FxyySW58sor06NHj/z0pz9NkrRt2zaTJ0/Ogw8++KXvefbZZ+eYY44p1zZo0KCyn88666w8+OCDueuuu9KpU6fUr18/e+65ZyZMmJB99tknEyZMyDnnnJMLLrggH330URYtWpTXXnstXbt2Xaff97oykwUAAAAAADaAqVOnpkqVKl9pNsUee+xR9nPTpk1Tq1atckFN06ZNM3fu3CTJyy+/nE8//TSHHHJI6tSpU3bcdNNNmTlzZrlxO3bsWPbz66+/nqVLl2bfffcta6tfv3523nnnsvMpU6akUCikbdu25caeOHFi2djTp08vC3c+98Xz1fnPepJk+fLl+eUvf5k99tgjjRo1Sp06dfLwww/nrbfeKuvTtWvXTJgwIYVCIZMmTcqRRx6Zdu3a5Yknnshjjz2Wpk2bZpdddlmr5xfLTBYAAAAAANgAatas+ZXH+M8N4EtKSlbaEL6kpKRsX5LP//f+++/PtttuW65faWlpufPatWuX/VwoFMrG+k+ft38+dpUqVfLcc8+lSpUq5fp9vvzZf/ZfV/9ZT5IMHz48l19+ea644oq0b98+tWvXztlnn50lS5aU9enatWuuv/76vPDCC9lqq62y2267pUuXLpk4cWI++OCDDb5UWCJkAQAAAACADaJ9+/ZZsWJFJk6cWLZc2Ia02267pbS0NG+99dY6BQw77rhjqlWrlqeffjqtWrVKkixYsCAzZswoG2evvfbK8uXLM3fu3BxwwAGrff5TTz1Vru2L52vr85kpJ510UpLPQp4ZM2Zk1113Levz+b4sV1xxRbp06ZKSkpJ06dIlw4YNywcffJAf/ehHRT17XVguDAAAAAAANoDtt98+J598cvr27Zt77703s2bNyoQJE3LnnXdukOfVrVs3gwYNyjnnnJMbb7wxM2fOzPPPP59rr702N9544xrvO/nkk/PjH/84jz32WF566aX07ds3W221VdnslrZt2+bEE09M7969M3bs2MyaNSvPPPNMLr300jzwwANJkh/+8Id58MEHc9lll+W1117LNddcs9J+LE8//XR22WWXvPvuu2t8l6997WsZN25cJk+enOnTp+e0007LnDlzyvX5fF+Wm2++uWzvlQMPPDBTpkzZKPuxJGayAAAAAACwiem/Z/+KLmGtjRo1Kueee2769++fefPmZbvttsu55567wZ530UUXpUmTJhk2bFhef/31NGjQIHvvvfeXPnPEiBE5/fTTc/jhh6devXoZPHhw3n777dSoUaOsz+jRo3PxxRdn4MCBeffdd9OoUaPst99+6dWrV5Lk61//ev7whz/k/PPPz9ChQ3PwwQfn5z//eS666KKyMT7++OO8+uqrWbp06RrrOe+88zJr1qz06NEjtWrVyve///0cddRRmT9/frl+3bp1y5QpU8oCla233jq77bZb3nvvvXKzXjaUksJXWSRtM7FgwYLUr18/8+fPT7169Sq6HAAAAADgS4ycOrKiS6i0NqUA4st8+umnmTVrVtq0aVPuX/az4S1atCjbbrtthg8fnn79+lV0ORvEmv58rW1uYCYLAAAAAABs4Z5//vm88sor2XfffTN//vxceOGFSZIjjzyygiur3OzJAgAAAAAAG9npp5+eOnXqrPI4/fTTK6Sm3/zmN+nQoUMOPvjgLFq0KJMmTUrjxo0rpJZNRYWGLI8//niOOOKItGjRIiUlJbn33nvLXS8pKVnl8etf/7qsT9euXVe6fvzxx2/kNwEAAAAAgLV34YUXZurUqas8Pp9FsjHttddeee6557Jw4cL8+9//zrhx49K+ffuNXsempkKXC1u0aFE6dOiQU045Jd/+9rdXuj579uxy53/961/Tr1+/lfqeeuqp5f7Q1axZc8MUDAAAAAAA60GTJk3SpEmTii6Dr6hCQ5aePXumZ8+eq73erFmzcud/+tOf0q1bt+ywww7l2mvVqrVSXwAAAAAANg+FQqGiS2AztD7+XG0ye7L83//9X+6///7069dvpWu33HJLGjdunN133z2DBg3KRx99tMaxFi9enAULFpQ7AAAAAACoXKpUqZIkWbJkSQVXwubo448/TpJUq1at6DEqdCbLurjxxhtTt27dHHPMMeXaTzzxxLRp0ybNmjXLtGnTMmTIkLzwwgsZN27cascaNmxYLrjggg1dMgAAAAAAX0HVqlVTq1at/Otf/0q1atWy1VabzLwBKrFCoZCPP/44c+fOTYMGDcrCvGJsMiHLDTfckBNPPDE1atQo137qqaeW/dyuXbvstNNO6dixY6ZMmZK99957lWMNGTIkAwYMKDtfsGBBWrVqtWEKBwAAAACgKCUlJWnevHlmzZqVN998s6LLYTPToEGDr7wVySYRskyaNCmvvvpq7rjjji/tu/fee6datWqZMWPGakOW0tLSlJaWru8yAQAAAABYz6pXr56ddtrJkmGsV9WqVftKM1g+t0mELNdff3322WefdOjQ4Uv7vvTSS1m6dGmaN2++ESoDAAAAAGBD22qrrVZa5QgqgwoNWRYuXJh//vOfZeezZs3K1KlT07Bhw2y33XZJPlvK66677srw4cNXun/mzJm55ZZb0qtXrzRu3Dgvv/xyBg4cmL322iv777//RnsPAAAAAABgy1OhIcuzzz6bbt26lZ1/vk/KySefnDFjxiRJbr/99hQKhXz3u99d6f7q1avn0UcfzZVXXpmFCxemVatWOeyww3L++eevl2k+AAAAAAAAq1NSKBQKFV1ERVuwYEHq16+f+fPnp169ehVdDgAAAADwJUZOHVnRJVRa/ffsX9ElwCZvbXODrTZiTQAAAAAAAJsNIQsAAAAAAEARhCwAAAAAAABFELIAAAAAAAAUQcgCAAAAAABQBCELAAAA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nz8/JSUladCgQbn2W265JY0bN87uu++eQYMG5aOPPlrjOIsXL86CBQvKHQAAAAAAAOuiQmeyrItPP/00P/3pT3PCCSekXr16Ze0nnnhi2rRpk2bNmmXatGkZMmRIXnjhhZVmwfynYcOG5YILLtgYZQMAAAAAAJupTSJkWbp0aY4//visWLEiI0eOLHft1FNPLfu5Xbt22WmnndKxY8dMmTIle++99yrHGzJkSAYMGFB2vmDBgrRq1WrDFA8AAAAAAGyWKn3IsnTp0hx77LGZNWtWxo8fX24Wy6rsvffeqVatWmbMmLHakKW0tDSlpaUbolwAAAAAAGALUalDls8DlhkzZuSxxx5Lo0aNvvSel156KUuXLk3z5s03QoUAAAAAAMCWqkJDloULF+af//xn2fmsWbMyderUNGzYMC1atMh///d/Z8qUKfnLX/6S5cuXZ86cOUmShg0bpnr16pk5c2ZuueWW9OrVK40bN87LL7+cgQMHZq+99sr+++9fUa8FAAAAAABsASo0ZHn22WfTrVu3svPP90k5+eSTM3To0Nx3331Jkj333LPcfY899li6du2a6tWr59FHH82VV16ZhQsXplWrVjnssMNy/vnnp0qVKhvtPQAAAAAAgC1PhYYsXbt2TaFQWO31NV1LklatWmXixInruywAAAAAAIAvtVVFFwAAAAAAALApErIAAAAAAAAUQcgCAAAAAABQBCELAAAAAABAEYQsAAAAAAAARRCyAAAAAAAAFEHIAgAAAAAAUISiQpZZs2at7zoAAAAAAAA2KUWFLF/72tfSrVu33Hzzzfn000/Xd00AAAAAAACVXlEhywsvvJC99torAwcOTLNmzXLaaafl6aefXt+1AQAAAAAAVFpFhSzt2rXLiBEj8u6772b06NGZM2dOvvGNb2T33XfPiBEj8q9//Wt91wkAAAAAAFCpfKWN76tWrZqjjz46d955Zy699NLMnDkzgwYNSsuWLdO7d+/Mnj17fdUJAAAAAABQqXylkOXZZ59N//7907x584wYMSKDBg3KzJkzM378+Lz77rs58sgj11edAAAAAAAAlUrVYm4aMWJERo8enVdffTW9evXKTTfdlF69emWrrT7LbNq0aZPf/va32WWXXdZrsQAAAAAAAJVFUSHLqFGj0rdv35xyyilp1qzZKvtst912uf76679ScQAAAAAAAJVVUSHLjBkzvrRP9erVc/LJJxczPAAAAAAAQKVX1J4so0ePzl133bVS+1133ZUbb7zxKxcFAAAAAABQ2RUVsvzqV79K48aNV2pv0qRJLrnkkq9cFAAAAAAAQGVXVMjy5ptvpk2bNiu1t27dOm+99dZXLgoAAAAAAKCyKypkadKkSV588cWV2l944YU0atToKxcFAAAAAABQ2RUVshx//PH54Q9/mMceeyzLly/P8uXLM378+PzoRz/K8ccfv75rBAAAAAAAqHSqFnPTxRdfnDfffDPdu3dP1aqfDbFixYr07t3bniwAAAAAAMAWoaiQpXr16rnjjjty0UUX5YUXXkjNmjXTvn37tG7den3XBwAAAAAAUCkVFbJ8rm3btmnbtu36qgUAAAAAAGCTUVTIsnz58owZMyaPPvpo5s6dmxUrVpS7Pn78+PVSHAAAAAAAQGVVVMjyox/9KGPGjMlhhx2Wdu3apaSkZH3XBQAAAAAAUKkVFbLcfvvtufPOO9OrV6/1XQ8AAAAAAMAmYatibqpevXq+9rWvre9aAAAAAAAANhlFhSwDBw7MlVdemUKhsL7rAQAAAAAA2CQUtVzYE088kcceeyx//etfs/vuu6datWrlro8dO3a9FAcAAAAAAFBZFRWyNGjQIEcfffT6rgUAAAAAAGCTUVTIMnr06PVdBwAAAAAAwCalqD1ZkmTZsmV55JFH8tvf/jYfffRRkuS9997LwoUL11txAAAAAAAAlVVRM1nefPPNfPOb38xbb72VxYsX55BDDkndunVz2WWX5dNPP8111123vusEAAAAAACoVIqayfKjH/0oHTt2zAcffJCaNWuWtR999NF59NFH11txAAAAAAAAlVVRM1meeOKJ/O1vf0v16tXLtbdu3TrvvvvueikMAAAAAACgMitqJsuKFSuyfPnyldrfeeed1K1b9ysXBQAAAAAAUNkVNZPlkEMOyRVXXJHf/e53SZKSkpIsXLgw559/fnr16rVeCwQAAAAAgI1u1qSKrmDj2LN/RVewSSsqZLn88svTrVu37Lbbbvn0009zwgknZMaMGWncuHFuu+229V0jAAAAAABApVNUyNKiRYtMnTo1t912W6ZMmZIVK1akX79+OfHEE1OzZs31XSMAAAAAAEClU1TIkiQ1a9ZM375907dv3/VZDwAAAAAAwCahqJDlpptuWuP13r17F1UMAAAAAADApqKokOVHP/pRufOlS5fm448/TvXq1VOrVi0hCwAAAAAAsNnbqpibPvjgg3LHwoUL8+qrr+Yb3/iGje8BAAAAAIAtQlEhy6rstNNO+dWvfrXSLBcAAAAAAIDN0XoLWZKkSpUqee+999a6/+OPP54jjjgiLVq0SElJSe69995y1wuFQoYOHZoWLVqkZs2a6dq1a1566aVyfRYvXpyzzjorjRs3Tu3atfOtb30r77zzzvp4HQAAAAAAgNUqak+W++67r9x5oVDI7Nmzc80112T//fdf63EWLVqUDh065JRTTsm3v/3tla5fdtllGTFiRMaMGZO2bdvm4osvziGHHJJXX301devWTZKcffbZ+fOf/5zbb789jRo1ysCBA3P44YfnueeeS5UqVYp5PQAAAAAAgC9VVMhy1FFHlTsvKSnJNttsk4MOOijDhw9f63F69uyZnj17rvJaoVDIFVdckZ/97Gc55phjkiQ33nhjmjZtmltvvTWnnXZa5s+fn+uvvz7/+7//m4MPPjhJcvPNN6dVq1Z55JFH0qNHj1WOvXjx4ixevLjsfMGCBWtdMwAAAAAAQFLkcmErVqwodyxfvjxz5szJrbfemubNm6+XwmbNmpU5c+bk0EMPLWsrLS1Nly5dMnny5CTJc889l6VLl5br06JFi7Rr166sz6oMGzYs9evXLztatWq1XmoGAAAAAAC2HOt1T5b1ac6cOUmSpk2blmtv2rRp2bU5c+akevXq2XrrrVfbZ1WGDBmS+fPnlx1vv/32eq4eAAAAAADY3BW1XNiAAQPWuu+IESOKeUSZkpKScueFQmGlti/6sj6lpaUpLS39SnUBAAAAAABbtqJClueffz5TpkzJsmXLsvPOOydJXnvttVSpUiV77713Wb8vC0PWpFmzZkk+m63yn0uQzZ07t2x2S7NmzbJkyZJ88MEH5WazzJ07N507dy762QAAAAAAAF+mqOXCjjjiiHTp0iXvvPNOpkyZkilTpuTtt99Ot27dcvjhh+exxx7LY489lvHjxxddWJs2bdKsWbOMGzeurG3JkiWZOHFiWYCyzz77pFq1auX6zJ49O9OmTROyAAAAAAAAG1RRM1mGDx+ehx9+uNzska233joXX3xxDj300AwcOHCtxlm4cGH++c9/lp3PmjUrU6dOTcOGDbPddtvl7LPPziWXXJKddtopO+20Uy655JLUqlUrJ5xwQpKkfv366devXwYOHJhGjRqlYcOGGTRoUNq3b5+DDz64mFcDAAAAAABYK0WFLAsWLMj//d//Zffddy/XPnfu3Hz00UdrPc6zzz6bbt26lZ1/vtfLySefnDFjxmTw4MH55JNP0r9//3zwwQfp1KlTHn744dStW7fsnssvvzxVq1bNsccem08++STdu3fPmDFjUqVKlWJeDQAAAAAAYK0UFbIcffTROeWUUzJ8+PB8/etfT5I89dRT+fGPf5xjjjlmrcfp2rVrCoXCaq+XlJRk6NChGTp06Gr71KhRI1dffXWuvvrqtX4uAAAAAADAV1VUyHLddddl0KBBOemkk7J06dLPBqpaNf369cuvf/3r9VogAAAAAABAZVRUyFKrVq2MHDkyv/71rzNz5swUCoV87WtfS+3atdd3fQAAAAAAAJXSVl/l5tmzZ2f27Nlp27ZtateuvcalvwAAAAAAADYnRYUs8+bNS/fu3dO2bdv06tUrs2fPTpL8z//8TwYOHLheCwQAAAAAAKiMilou7Jxzzkm1atXy1ltvZddddy1rP+6443LOOedk+PDh661AAAAAAIBNwqxJFV3BxtHmgIquACqNokKWhx9+OA899FBatmxZrn2nnXbKm2++uV4KAwAAAAAAqMyKWi5s0aJFqVWr1krt77//fkpLS79yUQAAAAAAAJVdUSHLgQcemJtuuqnsvKSkJCtWrMivf/3rdOvWbb0VBwAAAAAAUFkVtVzYr3/963Tt2jXPPvtslixZksGDB+ell17Kv//97/ztb39b3zUCAAAAAABUOkXNZNltt93y4osvZt99980hhxySRYsW5Zhjjsnzzz+fHXfccX3XCAAAAAAAUOms80yWpUuX5tBDD81vf/vbXHDBBRuiJgAAAAAAgEpvnWeyVKtWLdOmTUtJScmGqAcAAAAAAGCTUNRyYb17987111+/vmsBAAAAAADYZBS18f2SJUvyhz/8IePGjUvHjh1Tu3btctdHjBixXooDAAAAAACorNYpZHn99dez/fbbZ9q0adl7772TJK+99lq5PpYRAwAAAAAAtgTrFLLstNNOmT17dh577LEkyXHHHZerrroqTZs23SDFAQAAAAAAVFbrtCdLoVAod/7Xv/41ixYtWq8FAQAAAAAAbAqK2vj+c18MXQAAAAAA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33775Xe/+13eeuutnH766RVdGgAAAAAAsJnaLEKW4447LvPmzcuFF16Y2bNnp127dnnggQfSunXrii4NVqu0tDTnn3/+SkvXAbD2fEsBvjrfUoCvzrcUYP3YFL+nJYVCoVDRRQAAAAAAAGxqNvk9WQAAAAAAACqCkAUAAAAAAKAIQhYAAAAAAIAiCFkAAAAAAACKIGSBDWTkyJFp06ZNatSokX322SeTJk1aY//FixfnZz/7WVq3bp3S0tLsuOOOueGGGzZStQCV17p8T/v06ZOSkpKVjt13330jVgxQ+azrP5vecsst6dChQ2rVqpXmzZvnlFNOybx58zZStQCV07p+S6+99trsuuuuqVmzZnbeeefcdNNNG6lSgMrp8ccfzxFHHJEWLVqkpKQk995775feM3HixOyzzz6pUaNGdthhh1x33XUbvtB1JGSBDeCOO+7I2WefnZ/97Gd5/vnnc8ABB6Rnz5556623VnvPsccem0cffTTXX399Xn311dx2223ZZZddNmLVAJXPun5Pr7zyysyePbvsePvtt9OwYcN85zvf2ciVA1Qe6/otfeKJJ9K7d+/069cvL730Uu66664888wz+Z//+Z+NXDlA5bGu39JRo0ZlyJAhGTp0aF566aVccMEFOeOMM/LnP/95I1cOUHksWrQoHTp0yDXXXLNW/WfNmpVevXrlgAMOyPPPP59zzz03P/zhD3P33Xdv4ErXTUmhUChUdBGwuenUqVP23nvvjBo1qqxt1113zVFHHZVhw4at1P/BBx/M8ccfn9dffz0NGzbcmKUCVGrr+j39onvvvTfHHHNMZs2aldatW2/IUgEqrXX9lv7mN7/JqFGjMnPmzLK2q6++OpdddlnefvvtjVIzQGWzrt/Szp07Z//998+vf/3rsrazzz47zz77bJ544omNUjNAZVZSUpJ77rknRx111Gr7/OQnP8l9992X6dOnl7WdfvrpeeGFF/Lkk09uhCrXjpkssJ4tWbIkzz33XA499NBy7YceemgmT568ynvuu+++dOzYMZdddlm23XbbtG3bNoMGDconn3yyMUoGqJSK+Z5+0fXXX5+DDz5YwAJssYr5lnbu3DnvvPNOHnjggRQKhfzf//1f/vjHP+awww7bGCUDVDrFfEsXL16cGjVqlGurWbNmnn766SxdunSD1QqwOXnyySdX+vb26NEjzz77bKX6lgpZYD17//33s3z58jRt2rRce9OmTTNnzpxV3vP666/niSeeyLRp03LPPffkiiuuyB//+MecccYZG6NkgEqpmO/pf5o9e3b++te/Wt4G2KIV8y3t3Llzbrnllhx33HGpXr16mjVrlgYNGuTqq6/eGCUDVDrFfEt79OiRP/zhD3nuuedSKBTy7LPP5oYbbsjSpUvz/vvvb4yyATZ5c+bMWeW3d9myZZXqWypkgQ2kpKSk3HmhUFip7XMrVqxISUlJbrnlluy7777p1atXRowYkTFjxpjNAmzx1uV7+p/GjBmTBg0arHHqMcCWYl2+pS+//HJ++MMf5he/+EWee+65PPjgg5k1a1ZOP/30jVEqQKW1Lt/S8847Lz179szXv/71VKtWLUceeWT69OmTJKlSpcqGLhVgs7Gqb++q2iuSkAXWs8aNG6dKlSor/dcsc+fOXSl5/Vzz5s2z7bbbpn79+mVtu+66awqFQt55550NWi9AZVXM9/RzhUIhN9xwQ773ve+levXqG7JMgEqtmG/psGHDsv/+++fHP/5x9thjj/To0SMjR47MDTfckNmzZ2+MsgEqlWK+pTVr1swNN9yQjz/+OG+88UbeeuutbL/99qlbt24aN268McoG2OQ1a9Zsld/eqlWrplGjRhVU1cqELLCeVa9ePfvss0/GjRtXrn3cuHHp3LnzKu/Zf//9895772XhwoVlba+99lq22mqrtGzZcoPWC1BZFfM9/dzEiRPzz3/+M/369duQJQJUesV8Sz/++ONstVX5/6v4+X91/fl/OQiwJfkq/1xarVq1tGzZMlWqVMntt9+eww8/fKVvLACrtt9++6307X344YfTsWPHVKtWrYKqWpmvOmwAAwYMyB/+8IfccMMNmT59es4555y89dZbZUssDBkyJL179y7rf8IJJ6RRo0Y55ZRT8vLLL+fxxx/Pj3/84/Tt2zc1a9asqNcAqHDr+j393PXXX59OnTqlXbt2G7tkgEpnXb+lRxxxRMaOHZtRo0bl9ddfz9/+9rf88Ic/zL777psWLVpU1GsAVKh1/Za+9tprufnmmzNjxow8/fTTOf744zNt2rRccsklFfUKABVu4cKFmTp1aqZOnZokmTVrVqZOnZq33norycrf0tNPPz1vvvlmBgwYkOnTp+eGG27I9ddfn0GDBlVE+atVtaILgM3Rcccdl3nz5uXCCy/M7Nmz065duzzwwANp3bp1ks82Y/7845EkderUybhx43LWWWelY8eOadSoUY499thcfPHFFfUKAJXCun5Pk2T+/Pm5++67c+WVV1ZEyQCVzrp+S/v06ZOPPvoo11xzTQYOHJgGDRrkoIMOyqWXXlpRrwBQ4db1W7p8+fIMHz48r776aqpVq5Zu3bpl8uTJ2X777SvoDQAq3rPPPptu3bqVnQ8YMCBJcvLJJ2fMmDErfUvbtGmTBx54IOecc06uvfbatGjRIldddVW+/e1vb/Ta16SkYL43AAAAAADAOrNcGAAAAAAAQBGELAAAAAAAAEUQsgAAAAAAABRByAIAAAAAAFAEIQsAAAAAAEARhCwAAAAAAABFELIAAAAAAAAUQcgCAAAAAABQBCELAACwReratWvOPvvsii4DAADYhAlZAACATc4RRxyRgw8+eJXXnnzyyZSUlGTKlCkbuSoAAGBLI2QBAAA2Of369cv48ePz5ptvrnTthhtuyJ577pm99967AioDAAC2JEIWAABgk3P44YenSZMmGTNmTLn2jz/+OHfccUeOOuqofPe7303Lli1Tq1attG/fPrfddtsaxywpKcm9995brq1BgwblnvHuu+/muOOOy9Zbb51GjRrlyCOPzBtvvFF2fcKECdl3331Tu3btNGjQIPvvv/8qgyAAAGDzIGQBAAA2OVWrVk3v3r0zZsyYFAqFsva77rorS5Ysyf/8z/9kn332yV/+8pdMmzYt3//+9/O9730vf//734t+5scff5xu3bqlTp06efzxx/PEE0+kTp06+eY3v5klS5Zk2bJlOeqoo9KlS5e8+OKLefLJJ/P9738/JSUl6+OVAQCASqhqRRcAAABQjL59++bXv/51JkyYkG7duiX5bKmwY445Jttuu20GDRpU1vess87Kgw8+mLvuuiudOnUq6nm33357ttpqq/zhD38oC05Gjx6dBg0aZMKECenYsWPmz5+fww8/PDvuuGOSZNddd/2KbwkAAFRmZrIAAACbpF122SWdO3fODTfckCSZOXNmJk2alL59+2b58uX55S9/mT322CONGjVKnTp18vDDD+ett94q+nnPPfdc/vnPf6Zu3bqpU6dO6tSpk4YNG+bTTz/NzJkz07Bhw/Tp0yc9evTIEUcckSuvvDKzZ89eX68LAABUQkIWAABgk9WvX7/cfffdWbBgQUaPHp3WrVune/fuGT58eC6//PIMHjw448ePz9SpU9OjR48sWbJktWOVlJSUW3osSZYuXVr284oVK7LPPvtk6tSp5Y7XXnstJ5xwQpLPZrY8+eST6dy5c+644460bds2Tz311IZ5eQAAoMIJWQAAgE3WsccemypVquTWW2/NjTfemFNOOSUlJSWZNGlSjjzyyJx00knp0KFDdthhh8yYMWONY22zzTblZp7MmDEjH3/8cdn53nvvnRkzZqRJkyb52te+Vu6oX79+Wb+99torQ4YMyeTJk9OuXbvceuut6//FAQCASkHIAgAAbLLq1KmT4447Lueee27ee++99OnTJ0nyta99LePGjcvkyZMzffr0nHbaaZkzZ84axzrooINyzTXXZMqUKXn22Wdz+umnp1q1amXXTzzxxDRu3DhHHnlkJk2alFmzZmXixIn50Y9+lHfeeSezZs3KkCFD8uSTT+bNN9/Mww8/nNdee82+LAAAsBkTsgAAAJu0fv365YMPPsjBBx+c7bbbLkly3nnnZe+9906PHj3StWvXNGvWLEcdddQaxxk+fHhatWqVAw88MCeccEIGDRqUWrVqlV2vVatWHn/88Wy33XY55phjsuuuu6Zv37755JNPUq9evdSqVSuvvPJKvv3tb6dt27b5/ve/nzPPPDOnnXbahnx9AACgApUUvrjoMAAAAAAAAF/KTBYAAAAAAIAiCFkAAAAAAACKIGQBAAAAAAAogpAFAAAAAACgCEIWAAAAAACAIghZAAAAAAAAiiBkAQAAAAAAKIKQBQAAAAAAoAhCFgAAAAAAgCIIWQAAAAAAAIogZAEAAAAAACjC/weCOtDfn3pmagAAAABJRU5ErkJggg==",
226
+ "text/plain": [
227
+ "<Figure size 2000x600 with 1 Axes>"
228
+ ]
229
+ },
230
+ "metadata": {},
231
+ "output_type": "display_data"
232
+ }
233
+ ],
234
+ "source": [
235
+ "# we need to investigate why the merged assembly has a lower internal consistency\n",
236
+ "# first of all let's plot the internal consistency behavior for all the assemblies\n",
237
+ "\n",
238
+ "\n",
239
+ "pico_values = ic_pico.raw.values.flatten()\n",
240
+ "plt.figure(figsize=(20, 6))\n",
241
+ "plt.hist(pico_values, bins=20, alpha=0.5, label='ic_pico.raw')\n",
242
+ "oleo_values = ic_oleo.raw.values.flatten()\n",
243
+ "plt.hist(oleo_values, bins=20, alpha=0.5, label='ic_oleo.raw')\n",
244
+ "merged_values = ic_merged.raw.values.flatten()\n",
245
+ "plt.hist(merged_values, bins=20, alpha=0.5, label='ic_merged.raw')\n",
246
+ "\n",
247
+ "plt.xlabel('Values')\n",
248
+ "plt.ylabel('Frequency')\n",
249
+ "plt.title('Comparison of Values')\n",
250
+ "plt.legend()\n",
251
+ "plt.show()\n"
252
+ ]
253
+ },
254
+ {
255
+ "cell_type": "code",
256
+ "execution_count": 19,
257
+ "metadata": {},
258
+ "outputs": [],
259
+ "source": [
260
+ "# Get unique neuroid_ids for each xarray\n",
261
+ "pico_neuroid_ids = ic_pico.raw.neuroid_id.values\n",
262
+ "oleo_neuroid_ids = ic_oleo.raw.neuroid_id.values\n",
263
+ "merged_neuroid_ids = ic_merged.raw.neuroid_id.values\n",
264
+ "\n",
265
+ "per_neuron_ic_merged = {}\n",
266
+ "for id in merged_neuroid_ids:\n",
267
+ " if id not in per_neuron_ic_merged:\n",
268
+ " per_neuron_ic_merged[id] = []\n",
269
+ " per_neuron_ic_merged[id].append(np.mean(ic_merged.raw.sel(neuroid_id=id).values))\n",
270
+ "\n",
271
+ "per_neuron_ic_pico = {}\n",
272
+ "for id in pico_neuroid_ids:\n",
273
+ " if id not in per_neuron_ic_pico:\n",
274
+ " per_neuron_ic_pico[id] = []\n",
275
+ " per_neuron_ic_pico[id].append(np.mean(ic_pico.raw.sel(neuroid_id=id).values))\n",
276
+ "\n",
277
+ "per_neuron_ic_oleo = {}\n",
278
+ "for id in oleo_neuroid_ids:\n",
279
+ " if id not in per_neuron_ic_oleo:\n",
280
+ " per_neuron_ic_oleo[id] = []\n",
281
+ " per_neuron_ic_oleo[id].append(np.mean(ic_oleo.raw.sel(neuroid_id=id).values))"
282
+ ]
283
+ },
284
+ {
285
+ "cell_type": "code",
286
+ "execution_count": 20,
287
+ "metadata": {},
288
+ "outputs": [
289
+ {
290
+ "data": {
291
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABlUAAAF9CAYAAACdyO72AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzde3yT9fn/8dedJk2bpucT5SCFloIVxHFShoqKgoIiDp1TUcHTEKdOPCBuKup+8zTU6QTZJkM391U8THE6B4JsE0XlpCLnM9iUlgI9hbZpc//+iC2UFm1Cm6Tp+/l48IDe953cV5KbNPlcn+v6GKZpmoiIiIiIiIiIiIiIiMj3soQ6ABERERERERERERERkfZASRUREREREREREREREZEWUFJFRERERERERERERESkBZRUERERERERERERERERaQElVURERERERERERERERFpASRUREREREREREREREZEWUFJFRERERERERERERESkBZRUERERERERERERERERaQElVURERERERERERERERFpASRURERERaRNfffUVkyZNokePHsTExOB0OhkwYABPPPEE+/fvD3V4bW7ixIlkZ2eHOozjtnr1aoYPH05iYiKGYfDMM88c81jDMDAMg4kTJza7/+GHH244ZseOHW0Sb2uYN28ehmGwYsUKv2/rdruZMWMGS5cubf3A2shZZ53FWWed1aJjvV4vf/3rXzn33HNJS0vDZrORkZHBhRdeyLvvvovX623bYH+AP4+l3rp165gxY0ZYX5MiIiIiEj6soQ5ARERERCLPn/70J6ZMmULv3r25++67yc/Px+PxsGLFCl544QU+/fRT/vGPf4Q6zDZ1//33c/vtt4c6jON23XXXUVlZyauvvkpycvIPJori4+N5/fXXee6554iPj2/Ybpom8+bNIyEhgbKysjaOOnTcbjcPPfQQgN+D++GuqqqKcePGsXDhQn72s58xe/ZsOnXqRHFxMR988AGXXXYZr732GhdffHHIYpw1a5bft1m3bh0PPfQQZ511VkQkQkVERESkbSmpIiIiIiKt6tNPP+Xmm2/mvPPO4+2338ZutzfsO++887jzzjv54IMPQhhh23K73TgcDnJyckIdSqtYu3YtN954IxdccEGLjr/44ot58803efXVV7nxxhsbti9ZsoTt27dz44038qc//amtwo1YHo8HwzCwWkP3FW7q1Kn8+9//5qWXXuKaa65ptO8nP/kJd999N4cOHQpRdD75+fkhPb+IiIiIRD61/xIRERGRVvXb3/4WwzD44x//2CihUi86OpqxY8c2/Oz1enniiSfo06cPdrudjIwMrrnmGvbs2dPodmeddRZ9+/bl008/5cc//jGxsbFkZ2fzl7/8BYD33nuPAQMG4HA46NevX5PEzYwZMzAMg9WrV/OTn/yEhIQEEhMTmTBhAsXFxY2Ofe211xg5ciRZWVnExsZy4okncu+991JZWdnouIkTJ+J0Ovn6668ZOXIk8fHxjBgxomHf0bPeX3/9dU499VQSExNxOBz07NmT6667rtExu3btYsKECWRkZGC32znxxBOZOXNmo7ZKO3bswDAMfve73/HUU0/Ro0cPnE4nQ4cOZfny5d/38jRYu3YtF198McnJycTExHDKKafw0ksvNeyvb4FVW1vL7NmzG9p2/ZDExEQuueQS5s6d22j73LlzGTZsGHl5ec3e7sMPP2TEiBEkJCTgcDgYNmwYixcvbnTMli1bmDRpEr169cLhcNClSxcuuugivv7660bHLV26FMMw+L//+z9+9atf0blzZxISEjj33HPZuHFji56fo9W/1lu2bGH06NE4nU66devGnXfeSXV1NeB7XdLT0wF46KGHmm2HtnnzZq688spGr+/zzz/fbPx//etfufPOO+nSpQt2u50tW7a0KI56Dz30EKeeeiopKSkkJCQwYMAAXnzxRUzT9PvxFxYW8uc//5lRo0Y1SajU69WrFyeffHLDz619LW/bto2f/exndO7cGbvdTmZmJiNGjGDNmjUNxzTX/mv27Nn0798fp9NJfHw8ffr04b777gN81/lll10GwNlnn93wms2bN6/h9i25NuvfX7755huuuOIKEhMTyczM5LrrrqO0tLTRsV6vl+eee45TTjmF2NhYkpKSOO2001iwYAEA119/PSkpKbjd7ibP8TnnnMNJJ53U7PMvIiIiIsGhpIqIiIiItJq6ujqWLFnCwIED6datW4tuc/PNNzNt2jTOO+88FixYwCOPPMIHH3zAj3/8Y/bt29fo2MLCQiZNmsQNN9zAO++8Q79+/bjuuut4+OGHmT59Ovfccw9vvvkmTqeTcePGUVBQ0OR8l1xyCbm5ubzxxhvMmDGDt99+m1GjRuHxeBqO2bx5M6NHj+bFF1/kgw8+4Je//CXz58/noosuanJ/NTU1jB07lnPOOYd33nmnofXT0T799FMuv/xyevbsyauvvsp7773HAw88QG1tbcMxxcXF/PjHP2bhwoU88sgjLFiwgHPPPZe77rqLX/ziF03u8/nnn2fRokU888wzvPLKK1RWVjJ69Ogmg7hH27hxIz/+8Y/55ptvePbZZ3nrrbfIz89n4sSJPPHEEwCMGTOGTz/9FIBLL72UTz/9tOHnH3L99dezfPly1q9fD8DBgwd56623uP7665s9/m9/+xsjR44kISGBl156ifnz55OSksKoUaMaDV4XFBSQmprKY489xgcffMDzzz+P1Wrl1FNPbTZZct9997Fz507+/Oc/88c//pHNmzdz0UUXUVdX16LHcTSPx8PYsWMZMWIE77zzDtdddx1PP/00jz/+OABZWVkNybzrr7++4Tm7//77AV+bqcGDB7N27VpmzpzJP//5T8aMGcNtt93W7HUzffp0du3axQsvvMC7775LRkZGi+Kot2PHDn7+858zf/583nrrLX7yk59w66238sgjj/j92D/66CM8Hg/jxo1r0fFtcS2PHj2alStX8sQTT7Bo0SJmz57Nj370Iw4ePHjMOF599VWmTJnC8OHD+cc//sHbb7/NHXfc0ZAgHTNmDL/97W8bYqh/zcaMGQO0/NqsN378ePLy8njzzTe59957+fvf/84dd9zR6JiJEydy++23M3jwYF577TVeffVVxo4d27Cmy+23386BAwf4+9//3uh269at46OPPuKWW2754RdARERERNqOKSIiIiLSSgoLC03A/NnPftai49evX28C5pQpUxpt/+yzz0zAvO+++xq2DR8+3ATMFStWNGwrKSkxo6KizNjYWPPbb79t2L5mzRoTMJ999tmGbQ8++KAJmHfccUejc73yyismYP7tb39rNkav12t6PB7zP//5jwmYX375ZcO+a6+91gTMuXPnNrndtddea3bv3r3h59/97ncmYB48ePCYz8e9995rAuZnn33WaPvNN99sGoZhbty40TRN09y+fbsJmP369TNra2sbjvv8889NwPy///u/Y57DNE3zZz/7mWm3281du3Y12n7BBReYDoejUYyAecstt3zv/R19rNfrNXv06GHeddddpmma5vPPP286nU6zvLzcfPLJJ03A3L59u2mapllZWWmmpKSYF110UaP7qqurM/v3728OGTLkmOerra01a2pqzF69ejV6XT/66CMTMEePHt3o+Pnz55uA+emnn37v4/jLX/5iAuYXX3zRsK3+tZ4/f36jY0ePHm327t274efi4mITMB988MEm9ztq1Ciza9euZmlpaaPtv/jFL8yYmBhz//79jeI/88wzm9xHS+M4Wl1dnenxeMyHH37YTE1NNb1eb8O+4cOHm8OHDz/mbU3TNB977DETMD/44IPvPa5ea1/L+/btMwHzmWee+d7zHv1YfvGLX5hJSUnfe5vXX3/dBMyPPvqo0XZ/rs3695cnnnii0bFTpkwxY2JiGp7v//73vyZg/upXv/rBx3HKKac02nbzzTebCQkJZnl5+ffeVkRERETalipVRERERCRkPvroI4BG7ZEAhgwZwoknnthkJnhWVhYDBw5s+DklJYWMjAxOOeUUOnfu3LD9xBNPBGDnzp1NznnVVVc1+vmnP/0pVqu1IRbwtRm68sor6dSpE1FRUdhsNoYPHw7QUH1xpPHjx//gYx08eHDD+ebPn8+3337b5JglS5aQn5/PkCFDGm2fOHEipmmyZMmSRtvHjBlDVFRUw8/1rZeae9xHn2fEiBFNqokmTpyI2+1ucUXKsdS3vPrrX/9KbW0tL774Ij/96U9xOp1Njv3kk0/Yv38/1157LbW1tQ1/vF4v559/Pl988UVDVUFtbS2//e1vyc/PJzo6GqvVSnR0NJs3b272dTmyzRy0/Pn5vsd1dLXSySef3KL7q6qqYvHixVxyySU4HI5Gj3X06NFUVVU1aXd1rOuqpXEsWbKEc889l8TExIbr+IEHHqCkpISioqKWPOSAtfa1nJKSQk5ODk8++SRPPfUUq1evbtRG7FiGDBnCwYMHueKKK3jnnXeaVL99H3+uzXrNXXNVVVUNz/e//vUvgB+sNrn99ttZs2YNy5YtA6CsrIy//vWvXHvttc3+PxIRERGR4FFSRURERERaTVpaGg6Hg+3bt7fo+JKSEsCXLDla586dG/bXS0lJaXJcdHR0k+3R0dGAbyD7aJ06dWr0s9VqJTU1teFcFRUVnHHGGXz22Wf85je/YenSpXzxxRe89dZbAE0W4nY4HCQkJHzv4wQ488wzefvtt6mtreWaa66ha9eu9O3bl//7v/9rOKakpOSYz0X9/iOlpqY2+rl+DZsfWizc3/MEYtKkSRQXF/Pb3/6WVatWHbP11969ewFfizGbzdboz+OPP45pmuzfvx/wLZR+//33M27cON59910+++wzvvjiC/r379/sYw70+TkWh8NBTExMk/ts7jo7WklJCbW1tTz33HNNHufo0aMBmgz4N/catTSOzz//nJEjRwLwpz/9iWXLlvHFF1/wq1/9CvD/OTjhhBMA/Pq/3ZrXsmEYLF68mFGjRvHEE08wYMAA0tPTue222ygvLz9mHFdffTVz585l586djB8/noyMDE499VQWLVr0g4/Bn2uzpY+juLiYqKioJu9DR7v44ovJzs5uWG9n3rx5VFZWqvWXiIiISBiwhjoAEREREYkcUVFRjBgxgn/961/s2bOHrl27fu/x9QOQLperybEFBQWkpaW1eoyFhYV06dKl4efa2lpKSkoaYlmyZAkFBQUsXbq0oToFOOa6DS1ZvL3exRdfzMUXX0x1dTXLly/n0Ucf5corryQ7O5uhQ4eSmpqKy+Vqcrv6tWFa6/kIxnm6devGueeey0MPPUTv3r358Y9/3Oxx9ed67rnnOO2005o9JjMzE/Ctb3HNNdc0rIFRb9++fSQlJR13zG0pOTmZqKgorr766mMOjPfo0aPRz/5cW0d79dVXsdls/POf/2yUgHn77bcDur+zzz4bm83G22+/zeTJk3/w+La4xrp3786LL74IwKZNm5g/fz4zZsygpqaGF1544Zi3mzRpEpMmTaKyspL//ve/PPjgg1x44YVs2rSJ7t27H/N2/lybLZWenk5dXR2FhYXHTJoBWCwWbrnlFu677z5mzpzJrFmzGDFiBL179/brfCIiIiLS+lSpIiIiIiKtavr06ZimyY033khNTU2T/R6Ph3fffReAc845B/ANlh/piy++YP369YwYMaLV43vllVca/Tx//nxqa2s566yzgMMD2fUzzOvNmTOn1WKw2+0MHz68YWHx1atXAzBixAjWrVvHqlWrGh3/8ssvYxgGZ599dqucf8SIEQ3Jo6PP43A4jjmA7K8777yTiy66qGGh9uYMGzaMpKQk1q1bx6BBg5r9U195ZBhGk9flvffea7aVWqgcqxrG4XBw9tlns3r1ak4++eRmH+fRVQ7HwzAMrFZro5Zahw4d4q9//WtA99epUyduuOEG/v3vf/Pyyy83e8zWrVv56quvgLa/lvPy8vj1r39Nv379mpzjWOLi4rjgggv41a9+RU1NDd988w1w7NfMn2uzpS644AIAZs+e/YPH3nDDDURHR3PVVVexceNGfvGLX/h1LhERERFpG6pUEREREZFWNXToUGbPns2UKVMYOHAgN998MyeddBIej4fVq1fzxz/+kb59+3LRRRfRu3dvbrrpJp577jksFgsXXHABO3bs4P7776dbt27ccccdrR7fW2+9hdVq5bzzzuObb77h/vvvp3///vz0pz8F4Mc//jHJyclMnjyZBx98EJvNxiuvvMKXX355XOd94IEH2LNnDyNGjKBr164cPHiQ3//+943Wa7njjjt4+eWXGTNmDA8//DDdu3fnvffeY9asWdx8883k5eUd9+MHePDBB/nnP//J2WefzQMPPEBKSgqvvPIK7733Hk888QSJiYmtcp6RI0c2tKA6FqfTyXPPPce1117L/v37ufTSS8nIyKC4uJgvv/yS4uLihgHoCy+8kHnz5tGnTx9OPvlkVq5cyZNPPvmDFVHBFB8fT/fu3XnnnXcYMWIEKSkppKWlkZ2dze9//3tOP/10zjjjDG6++Ways7MpLy9ny5YtvPvuu03WGTkeY8aM4amnnuLKK6/kpptuoqSkhN/97ndNklL+eOqpp9i2bRsTJ07k3//+N5dccgmZmZns27ePRYsW8Ze//IVXX32Vk08+udWv5a+++opf/OIXXHbZZfTq1Yvo6GiWLFnCV199xb333nvM2914443ExsYybNgwsrKyKCws5NFHHyUxMbFhnaO+ffsC8Mc//pH4+HhiYmLo0aMHqampLb42W+qMM87g6quv5je/+Q179+7lwgsvxG63s3r1ahwOB7feemvDsUlJSVxzzTXMnj2b7t27N1lHR0RERERCQ0kVEREREWl1N954I0OGDOHpp5/m8ccfp7CwEJvNRl5eHldeeWWjGdezZ88mJyeHF198keeff57ExETOP/98Hn300VaduV/vrbfeYsaMGcyePbthwe9nnnmmYcZ5amoq7733HnfeeScTJkwgLi6Oiy++mNdee40BAwYEfN5TTz2VFStWMG3aNIqLi0lKSmLQoEEsWbKEk046CfC1Bvrkk0+YPn0606dPp6ysjJ49e/LEE08wderUVnn8AL179+aTTz7hvvvu45ZbbuHQoUOceOKJ/OUvf2HixImtdp6WmjBhAieccAJPPPEEP//5zykvLycjI4NTTjmlUTz1SahHH32UiooKBgwYwFtvvcWvf/3roMf8fV588UXuvvtuxo4dS3V1Nddeey3z5s0jPz+fVatW8cgjj/DrX/+aoqIikpKS6NWrV8O6Kq3lnHPOYe7cuTz++ONcdNFFdOnShRtvvJGMjIxjrm/zQ2JiYnjvvfd45ZVXeOmll/j5z39OWVkZycnJDBo0iLlz5zYM/Lf2tdypUydycnKYNWsWu3fvxjAMevbsycyZMxslIo52xhlnMG/ePObPn8+BAwdIS0vj9NNP5+WXXyY9PR3wtV175pln+P3vf89ZZ51FXV1dw/+Fll6b/pg3bx4DBgzgxRdfZN68ecTGxpKfn899993X5NjLL7+c2bNnc/PNN2OxqNGEiIiISDgwTNM0Qx2EiIiIiEhbmzFjBg899BDFxcVtslaLiEhru/POO5k9eza7d+9ukySziIiIiPhPlSoiIiIiIiIiYWT58uVs2rSJWbNm8fOf/1wJFREREZEwoqSKiIiIiIiISBgZOnQoDoeDCy+8kN/85jehDkdEREREjqD2XyIiIiIiIiIiIiIiIi2gle5ERERERERERERERERaQEkVERERERERERERERGRFlBSRUREREREREREREREpAU63EL1Xq+XgoIC4uPjMQwj1OGIiIiIiIiIiIiIiEgImaZJeXk5nTt3xmL5/lqUkCZV/vvf//Lkk0+ycuVKXC4X//jHPxg3btz33uY///kPU6dO5ZtvvqFz587cc889TJ48ucXnLCgooFu3bscZuYiIiIiIiIiIiIiIRJLdu3fTtWvX7z0mpEmVyspK+vfvz6RJkxg/fvwPHr99+3ZGjx7NjTfeyN/+9jeWLVvGlClTSE9Pb9HtAeLj4wHfk5OQkHBc8YuIiIiIiIiIiIiISPtWVlZGt27dGvIH3yekSZULLriACy64oMXHv/DCC5xwwgk888wzAJx44omsWLGC3/3udy1OqtS3/EpISFBSRUREREREREREREREAFq0ZEi7Wqj+008/ZeTIkY22jRo1ihUrVuDxeJq9TXV1NWVlZY3+iIiIiIiIiIiIiIiI+KtdJVUKCwvJzMxstC0zM5Pa2lr27dvX7G0effRREhMTG/5oPRURERER6TAqiqjeuoS5S6dTvXUJVBSFOiIREREREZF2LaTtvwJxdPmNaZrNbq83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MTExDBw4kP/973/HPHbixIkYhtHkz0knnRTEiEVERETaiYoiqrcuYe7S6VRvXeL7QhQiqRUlxJvg8lbhqnOzz1vVaP++77a7vFXEm5BWuT9EkYqIiIh0YPUVCp3OZn78QPJKXVC0nrxSF6/HD2Rap7PJGaoKhQ7FmQHZp0Ovc31/K6HSZqpr6zAMX6uv72MxDAwDqjx133tcW4qNjf3e/aZpNkrO1G+LFCGtVHnttdf45S9/yaxZsxg2bBhz5szhggsuYN26dZxwwglNjv/973/PY4891vBzbW0t/fv357LLLgtm2CIiIiLhLQwXg4/HwkvRecyx1zKnbC3GUT26LRiYmExO6MtN1Vas5vd/kRARERGRtqEKBZHQsFujME3wmub3Jla8polpQoyt9as9li9f3uTnXr16NaksOfnkk9mzZw+bNm1qtlolPz+fjz/+uNG2Tz75hLy8vHZfpQIBJFXq6uqYN28eixcvpqioCK/X22j/kiVLWnxfTz31FNdffz033HADAM888wz//ve/mT17No8++miT4xMTE0lMTGz4+e233+bAgQNMmjTJ34chIiIiEpnCdTF4qx2rYXJLYl/iLdE8eXBVo91eTO5JGsDV8XlQvB5sMcGLTURERESa0gLyIkGVm+Ek0WHjQGUNqc5jt/U6UFlDosNGbsb3twkLxO7du5k6dSo///nPWbVqFc899xwzZ85sctzw4cM588wzGT9+PE899RS5ubls2LABwzA4//zzufPOOxk8eDCPPPIIl19+OZ9++il/+MMfmDVrVqvHHAp+J1Vuv/125s2bx5gxY+jbt2+TMp6WqqmpYeXKldx7772Nto8cOZJPPvmkRffx4osvcu6559K9e/djHlNdXU11dXXDz2VlZQHFKyIiItIuhOti8Om9ISYZ3CVsqNmP5ahKlSgMNtQcAHeJ77i03sGLTUREREREJMTS4+3075rI0o3FJMTaml2s3lPnpbi8muG900n7nsRLoK655hoOHTrEkCFDiIqK4tZbb+Wmm25q9tg333yTu+66iyuuuILKykpyc3MbukwNGDCA+fPn88ADD/DII4+QlZXFww8/HBGL1EMASZVXX32V+fPnM3r06OM68b59+6irqyMzM7PR9szMTAoLC3/w9i6Xi3/961/8/e9//97jHn30UR566KHjilVERESkPQjrxeCdGdBl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SDKBgYFy+PBh4+PevXvL9evXjY9PnDghvr6++dZOlmmL+sb3VDLUqlULS5YswezZsy2OX7p0KWrVqmUyTKfT4c6dOybDevfuDY1Gg169ell8Llsy9evXR3BwMF599VWLtR07dgwffvhhicmUL18eFy5cQEhIiHFYYGAgduzYgbZt21p8LkfK6PV63L592+x5ciUmJkKv1z9yxtPTExMmTEDTpk0tZqKiojB06NASk7l58yYqV65sfOzn54etW7eiU6dO6Nq1Kz7//HOz51FzJjU1FWXKlAEAuLu7w93dHRUqVDCODwoKwvXr1x85Y+22Y6/tkxnb3gdq3W7smalQoQL27duH6tWrW8z8+eefJsvXq1cvvPrqq/jkk0/QoUMHeHt7AwCSkpKwdetWvPPOO+jTp4/Jc9gr07BhQwBA69atLS6Lj48PROSRMrbMIzg4GKdPn0ZoaKhxmKenJ7Zs2YKOHTviueeeM3seZuyXadSoEQ4fPoyXX37ZbBwAKIpitk5r166Nffv2oW7duibD3333XYgIevfubfY8as2otS57ZmbPno1u3bph8+bN6NixIwICAqAoCuLj47F161ZcunQJmzZtKpZM7vbZr18/s7oBy9tnac/Ur18fv//+Oxo1amQy3SuvvAKDwWDx9wcz6s5ERETg77//Ro0aNQAAV65cMRl/5swZk9+OtmbUui9Qa12Abe9pbjf2yyxYsABdu3ZFUFAQateubZI5ceIEatasiV9++eWRMvaYBwA8+eSTOHv2LPLj6emJVq1aMWMhs379ejz11FMmw2vWrInt27ejbdu2Zs9jS6Zu3br466+/jL+VVq9ebTL+r7/+Mr6vyAr27cMhtdi5c6e4u7tLzZo1ZcyYMfLRRx/JjBkzZMyYMVKrVi3x8PAw6/ns0KGDzJo1y+LzrV69Wpydnc16Q23JTJs2TSZPnpxv7ZcvX5aBAweWmMzrr78ugwYNsjh9bGyshIWFmb0GjpQZOXKkBAcHy3fffSd37twxDr9z54589913UqlSJRk1apTJ89iSadOmjcycOdNiXSI592t48JJUas5Ur15dfvnlF7NpU1JSpHnz5lKvXj2LRwqqNVO1alWTswUWLFggycnJxseHDx+W8uXLP3LG2m3HXtsnM7a9D9S63dgz89lnn4mLi4uMGDFCNm7cKH/++afs379fNm7cKCNG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dqoQEREREVGxqlOnDvr27Yv58+ebDB83bhyaNWuGESNGYPDgwXB3d8fp06exdetW47Tt2rXDf//7XzRr1gwGgwHjxo2Ds7PzQ+f53nvv4YMPPkDVqlVRv359LF++HJGRkVi1apXF6YcNG4bZs2fj7bffxtChQ42XJrNFSkoK4uPjkZmZiejoaHz99df4/PPP8dFHHxXYgURERERERMWP91QhIiIiIqJi9+9//9vsElt169bFrl27EBUVhaeeegoNGjTAxIkTUaFCBeM0s2fPRnBwMFq1aoU+ffrg3XffhZub20PnN2rUKLzzzjt45513UKdOHWzevBk//vgjqlWrZnH6SpUqYf369fjpp59Qr149LFq0CNOnT7dpWSdNmoQKFSogLCwM/fv3R1JSErZv345x48bZ9HxERERERGQ/ijzuiwMTERERERERERERERE5AJ6pQkREREREREREREREVAjsVCEiIiIiIiIiIiIiIioEdqoQEREREREREREREREVAjtViIiIiIiIiIiIiIiICoGdKkRERERERERERERERIXAThUiIiIiIiIiIiIiIqJCYKcKERERERERERERERFRIbBThYiIiIiIiIiIiIiIqBDYqUJERERERERERERERFQI7FQhIiIiIiIiIiIiIiIqBHaqEBERERERERERERERFcL/AY+Glhj+km52AAAAAElFTkSuQmCC",
292
+ "text/plain": [
293
+ "<Figure size 2000x300 with 1 Axes>"
294
+ ]
295
+ },
296
+ "metadata": {},
297
+ "output_type": "display_data"
298
+ }
299
+ ],
300
+ "source": [
301
+ "# Extracting x and y values for plotting from dictionaries\n",
302
+ "neuroid_ids_pico = list(per_neuron_ic_pico.keys())\n",
303
+ "ic_values_pico = [np.mean(per_neuron_ic_pico[id]) for id in neuroid_ids_pico]\n",
304
+ "\n",
305
+ "neuroid_ids_oleo = list(per_neuron_ic_oleo.keys())\n",
306
+ "ic_values_oleo = [np.mean(per_neuron_ic_oleo[id]) for id in neuroid_ids_oleo]\n",
307
+ "\n",
308
+ "neuroid_ids_merged = list(per_neuron_ic_merged.keys())\n",
309
+ "ic_values_merged = [np.mean(per_neuron_ic_merged[id]) for id in neuroid_ids_merged]\n",
310
+ "\n",
311
+ "\n",
312
+ "plt.figure(figsize=(20, 3))\n",
313
+ "plt.scatter(neuroid_ids_pico, ic_values_pico, label='pico', marker='o', s=60, alpha=0.5)\n",
314
+ "plt.scatter(neuroid_ids_oleo, ic_values_oleo, label='oleo', marker='o', s=60, alpha=0.5)\n",
315
+ "plt.scatter(neuroid_ids_merged, ic_values_merged, label='merged', marker='*', s=60, alpha=1)\n",
316
+ "plt.xlabel('Neuroid ID')\n",
317
+ "plt.ylabel('Mean Internal Consistency')\n",
318
+ "plt.title('Comparison of Mean Internal Consistency')\n",
319
+ "plt.xticks(rotation='vertical') \n",
320
+ "plt.legend()\n",
321
+ "plt.show()\n"
322
+ ]
323
+ }
324
+ ],
325
+ "metadata": {
326
+ "kernelspec": {
327
+ "display_name": "brainscore",
328
+ "language": "python",
329
+ "name": "python3"
330
+ },
331
+ "language_info": {
332
+ "codemirror_mode": {
333
+ "name": "ipython",
334
+ "version": 3
335
+ },
336
+ "file_extension": ".py",
337
+ "mimetype": "text/x-python",
338
+ "name": "python",
339
+ "nbconvert_exporter": "python",
340
+ "pygments_lexer": "ipython3",
341
+ "version": "3.8.18"
342
+ }
343
+ },
344
+ "nbformat": 4,
345
+ "nbformat_minor": 2
346
+ }