pyNIBS 0.2024.8__py3-none-any.whl → 0.2026.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. pynibs/__init__.py +26 -14
  2. pynibs/coil/__init__.py +6 -0
  3. pynibs/{coil.py → coil/coil.py} +213 -543
  4. pynibs/coil/export.py +508 -0
  5. pynibs/congruence/__init__.py +4 -1
  6. pynibs/congruence/congruence.py +37 -45
  7. pynibs/congruence/ext_metrics.py +40 -11
  8. pynibs/congruence/stimulation_threshold.py +1 -2
  9. pynibs/expio/Mep.py +120 -370
  10. pynibs/expio/__init__.py +10 -0
  11. pynibs/expio/brainsight.py +34 -37
  12. pynibs/expio/cobot.py +25 -25
  13. pynibs/expio/exp.py +10 -7
  14. pynibs/expio/fit_funs.py +3 -0
  15. pynibs/expio/invesalius.py +70 -0
  16. pynibs/expio/localite.py +190 -91
  17. pynibs/expio/neurone.py +139 -0
  18. pynibs/expio/signal_ced.py +345 -2
  19. pynibs/expio/visor.py +16 -15
  20. pynibs/freesurfer.py +34 -33
  21. pynibs/hdf5_io/hdf5_io.py +149 -132
  22. pynibs/hdf5_io/xdmf.py +35 -31
  23. pynibs/mesh/__init__.py +1 -1
  24. pynibs/mesh/mesh_struct.py +77 -92
  25. pynibs/mesh/transformations.py +121 -21
  26. pynibs/mesh/utils.py +191 -99
  27. pynibs/models/_TMS.py +2 -1
  28. pynibs/muap.py +1 -2
  29. pynibs/neuron/__init__.py +10 -0
  30. pynibs/neuron/models/mep.py +566 -0
  31. pynibs/neuron/neuron_regression.py +98 -8
  32. pynibs/optimization/__init__.py +12 -2
  33. pynibs/optimization/{optimization.py → coil_opt.py} +157 -133
  34. pynibs/optimization/multichannel.py +1174 -24
  35. pynibs/optimization/workhorses.py +7 -8
  36. pynibs/regression/__init__.py +4 -2
  37. pynibs/regression/dual_node_detection.py +229 -219
  38. pynibs/regression/regression.py +92 -61
  39. pynibs/roi/__init__.py +4 -1
  40. pynibs/roi/roi_structs.py +19 -21
  41. pynibs/roi/{roi.py → roi_utils.py} +56 -33
  42. pynibs/subject.py +24 -14
  43. pynibs/util/__init__.py +20 -4
  44. pynibs/util/dosing.py +4 -5
  45. pynibs/util/quality_measures.py +39 -38
  46. pynibs/util/rotations.py +116 -9
  47. pynibs/util/{simnibs.py → simnibs_io.py} +29 -19
  48. pynibs/util/{util.py → utils.py} +20 -22
  49. pynibs/visualization/para.py +4 -4
  50. pynibs/visualization/render_3D.py +4 -4
  51. pynibs-0.2026.1.dist-info/METADATA +105 -0
  52. pynibs-0.2026.1.dist-info/RECORD +69 -0
  53. {pyNIBS-0.2024.8.dist-info → pynibs-0.2026.1.dist-info}/WHEEL +1 -1
  54. pyNIBS-0.2024.8.dist-info/METADATA +0 -723
  55. pyNIBS-0.2024.8.dist-info/RECORD +0 -107
  56. pynibs/data/configuration_exp0.yaml +0 -59
  57. pynibs/data/configuration_linear_MEP.yaml +0 -61
  58. pynibs/data/configuration_linear_RT.yaml +0 -61
  59. pynibs/data/configuration_sigmoid4.yaml +0 -68
  60. pynibs/data/network mapping configuration/configuration guide.md +0 -238
  61. pynibs/data/network mapping configuration/configuration_TEMPLATE.yaml +0 -42
  62. pynibs/data/network mapping configuration/configuration_for_testing.yaml +0 -43
  63. pynibs/data/network mapping configuration/configuration_modelTMS.yaml +0 -43
  64. pynibs/data/network mapping configuration/configuration_reg_isi_05.yaml +0 -43
  65. pynibs/data/network mapping configuration/output_documentation.md +0 -185
  66. pynibs/data/network mapping configuration/recommendations_for_accuracy_threshold.md +0 -77
  67. pynibs/data/neuron/models/L23_PC_cADpyr_biphasic_v1.csv +0 -1281
  68. pynibs/data/neuron/models/L23_PC_cADpyr_monophasic_v1.csv +0 -1281
  69. pynibs/data/neuron/models/L4_LBC_biphasic_v1.csv +0 -1281
  70. pynibs/data/neuron/models/L4_LBC_monophasic_v1.csv +0 -1281
  71. pynibs/data/neuron/models/L4_NBC_biphasic_v1.csv +0 -1281
  72. pynibs/data/neuron/models/L4_NBC_monophasic_v1.csv +0 -1281
  73. pynibs/data/neuron/models/L4_SBC_biphasic_v1.csv +0 -1281
  74. pynibs/data/neuron/models/L4_SBC_monophasic_v1.csv +0 -1281
  75. pynibs/data/neuron/models/L5_TTPC2_cADpyr_biphasic_v1.csv +0 -1281
  76. pynibs/data/neuron/models/L5_TTPC2_cADpyr_monophasic_v1.csv +0 -1281
  77. pynibs/tests/data/InstrumentMarker20200225163611937.xml +0 -19
  78. pynibs/tests/data/TriggerMarkers_Coil0_20200225163443682.xml +0 -14
  79. pynibs/tests/data/TriggerMarkers_Coil1_20200225170337572.xml +0 -6373
  80. pynibs/tests/data/Xdmf.dtd +0 -89
  81. pynibs/tests/data/brainsight_niiImage_nifticoord.txt +0 -145
  82. pynibs/tests/data/brainsight_niiImage_nifticoord_largefile.txt +0 -1434
  83. pynibs/tests/data/brainsight_niiImage_niifticoord_mixedtargets.txt +0 -47
  84. pynibs/tests/data/create_subject_testsub.py +0 -332
  85. pynibs/tests/data/data.hdf5 +0 -0
  86. pynibs/tests/data/geo.hdf5 +0 -0
  87. pynibs/tests/test_coil.py +0 -474
  88. pynibs/tests/test_elements2nodes.py +0 -100
  89. pynibs/tests/test_hdf5_io/test_xdmf.py +0 -61
  90. pynibs/tests/test_mesh_transformations.py +0 -123
  91. pynibs/tests/test_mesh_utils.py +0 -143
  92. pynibs/tests/test_nnav_imports.py +0 -101
  93. pynibs/tests/test_quality_measures.py +0 -117
  94. pynibs/tests/test_regressdata.py +0 -289
  95. pynibs/tests/test_roi.py +0 -17
  96. pynibs/tests/test_rotations.py +0 -86
  97. pynibs/tests/test_subject.py +0 -71
  98. pynibs/tests/test_util.py +0 -24
  99. /pynibs/{regression/score_types.py → neuron/models/m1_montbrio.py} +0 -0
  100. {pyNIBS-0.2024.8.dist-info → pynibs-0.2026.1.dist-info/licenses}/LICENSE +0 -0
  101. {pyNIBS-0.2024.8.dist-info → pynibs-0.2026.1.dist-info}/top_level.txt +0 -0
@@ -1,107 +0,0 @@
1
- pynibs/__init__.py,sha256=VRPSuJPSSJTJoLMijp4FB3Xs7KWnLW6OpbaUUMOVFvk,1062
2
- pynibs/coil.py,sha256=du3Bv-buU7dOq5giP8yhMAR_0ZOXl5EOQJ9MXYfG1f0,55081
3
- pynibs/freesurfer.py,sha256=lLcBoWGoMRgOyEQOvCdi2wSizmg4HqEuBQKASfZXnHY,21743
4
- pynibs/muap.py,sha256=kuc6F8sr_wjByQQdnsOle2_ul9ejeqhe_QnNHanjQDA,11761
5
- pynibs/subject.py,sha256=WlbkFxmol8hjgds2RCazqXB8SLEQe_yX0sRiBWASnSE,33297
6
- pynibs/tensor_scaling.py,sha256=Im1DNUdr_vOJOhpUczbUD-Qkg9LV_kUN3wLSlK7y0mw,4310
7
- pynibs/tms_pulse.py,sha256=YFPk0HRRehX39TFDp9doKblcJN8D_DsTA9w-lXyJNvc,988
8
- pynibs/congruence/__init__.py,sha256=0Icwl1YJL5uByBainvNwgZ0TDDi6H1tJpVmn1YIB0ts,799
9
- pynibs/congruence/congruence.py,sha256=ZFZvXRoslLb0Bf1cRDnnfjJxLKNQSn8sw6qCFFYRTXM,52033
10
- pynibs/congruence/ext_metrics.py,sha256=YQcRtfkc5hxl0kAjQIDayUhAo972QvfWkDoOZXI2bJ8,9657
11
- pynibs/congruence/stimulation_threshold.py,sha256=Yd_nPsN0WmzzsFfvj_4Yb3I9HXR6m_1MvPjMrmLnTmo,14451
12
- pynibs/data/configuration_exp0.yaml,sha256=oIGzghlgQjTYwf72LAgMcsPjGidc4CD4RTkFYbYlq2U,2841
13
- pynibs/data/configuration_linear_MEP.yaml,sha256=hvLG1vWL08ecHO-yx5x4cmFx8z1RzrjSSsAvuwaLVRk,2946
14
- pynibs/data/configuration_linear_RT.yaml,sha256=AQQCBAL9I__pNtW-DMJClChIPvGBcGMhRsI64WQKyE8,2967
15
- pynibs/data/configuration_sigmoid4.yaml,sha256=xb12PD5TMH1Va2E1u9aoEJejvmTa22JE84ZeVnhs3uc,3748
16
- pynibs/data/network mapping configuration/configuration guide.md,sha256=gtjU-4mrvh9rzWRCC-POqIv9SyI8ZcAFAY7vEvfgzYk,12034
17
- pynibs/data/network mapping configuration/configuration_TEMPLATE.yaml,sha256=JgziyZ-bePmTXubJFPC7QOsKEFV8wx293SPrQJa5Lxo,2233
18
- pynibs/data/network mapping configuration/configuration_for_testing.yaml,sha256=pR80ywzT16loOgeDXveHtnkf13R4uQeieWFh-tpvYCw,2565
19
- pynibs/data/network mapping configuration/configuration_modelTMS.yaml,sha256=3mwNzE9Xj_N412ChqWOglPKYFSrtZGQdOP6BxnzprYk,2253
20
- pynibs/data/network mapping configuration/configuration_reg_isi_05.yaml,sha256=yUEt-I0CG-xg9TRL5K2vJTG-hZw3DfER1dN7NHPJyWA,2236
21
- pynibs/data/network mapping configuration/output_documentation.md,sha256=hWau9A_6BCUwpuv1Aauuxbs9qKc-vwmICVMRBBQXK1I,11169
22
- pynibs/data/network mapping configuration/recommendations_for_accuracy_threshold.md,sha256=I_MpCr8qQDKJ2hpRiYx4B2i8yoIGf-szYfK9JLh-RSc,3369
23
- pynibs/data/neuron/models/L23_PC_cADpyr_biphasic_v1.csv,sha256=RU5zp35iIMk8zwVYeVoY35wot92SbBG6tCHVjzvLKTU,30471
24
- pynibs/data/neuron/models/L23_PC_cADpyr_monophasic_v1.csv,sha256=dHG2pSlAydXwi09oAFL2C9cLcVqkUuOQWRq93HtX1XE,30470
25
- pynibs/data/neuron/models/L4_LBC_biphasic_v1.csv,sha256=G-35zjTIsGW4tvvzxgFQfTd1VQNZN---YpFa4AHKEAc,37927
26
- pynibs/data/neuron/models/L4_LBC_monophasic_v1.csv,sha256=nGvnTryPp31ZqzruyipeIYpcaYaHIFAVLOi_sPoHfsU,37514
27
- pynibs/data/neuron/models/L4_NBC_biphasic_v1.csv,sha256=RjETfsuR5Q6irNWLaEPwymZoSqyPLp8JfCd7MVEv_Gc,37777
28
- pynibs/data/neuron/models/L4_NBC_monophasic_v1.csv,sha256=M2a61JDUYqWQTBampNK-lZM_yW0RR9yjsh_VkvWg-Yg,37552
29
- pynibs/data/neuron/models/L4_SBC_biphasic_v1.csv,sha256=BH2oR57W9G0X9H6FvC3XDfgmphs-nALtBpEbL5G3W2g,37578
30
- pynibs/data/neuron/models/L4_SBC_monophasic_v1.csv,sha256=_Ullq-xwsGgrQUO2uUImK0auxuLUzEo1DHOC4UmH0aE,37530
31
- pynibs/data/neuron/models/L5_TTPC2_cADpyr_biphasic_v1.csv,sha256=VJPGibXBWsjYaB9fUYA5HsMgLfumXTkPgCEsqHjZG-4,30418
32
- pynibs/data/neuron/models/L5_TTPC2_cADpyr_monophasic_v1.csv,sha256=5qXud1aiNVyRPKwmUA57x6u2tIcLhYhs67RETXnN5QQ,30430
33
- pynibs/expio/Mep.py,sha256=zgqGanj4P2AaHE6Z1UO2U8an6CctWtHCq0fE06eZ9Ms,57018
34
- pynibs/expio/__init__.py,sha256=n8rVZlvUAlix_waP4kKyvluwEUfkZW3uyayhUMEokZY,183
35
- pynibs/expio/brainsight.py,sha256=9utwak6Mc0vLYuag2lQPqCni2IuJr-I6gGqsXjzYL9s,41141
36
- pynibs/expio/brainvis.py,sha256=04bC4Tbcex-nl31-D26v2pEpCtkslCCJsM_IbKeUSh8,1439
37
- pynibs/expio/cobot.py,sha256=N4v1WxlUZveP-Di2zD2XP9H-Y6HE00ddcv-K_-8DJ-4,9569
38
- pynibs/expio/exp.py,sha256=KHsuTuNvAlNJMruzLSvxoysAfcd7Z1ORwbgdaC-Loes,71799
39
- pynibs/expio/fit_funs.py,sha256=sh0zJWkvBu7qZEUceURPy9NxatRkWOBRlF6QSsTdd3Y,5972
40
- pynibs/expio/localite.py,sha256=3FKAIKzEbgRznzsZ7wEhpgEhWb5QkHfQnasxMdqKo4w,81602
41
- pynibs/expio/signal_ced.py,sha256=LUWTcqV_H4BqEDwIcHJM_AmO2lTZDraIUM0Ej5R5Ok4,1454
42
- pynibs/expio/visor.py,sha256=ca6trT9OXcGu5tdYnqx43EAi7No7j2uHGltqzvAodiA,23772
43
- pynibs/hdf5_io/__init__.py,sha256=nI4CnHWW6O45AoTYBV7bYqI_9G7EPd3IE5ILHGL7TPE,519
44
- pynibs/hdf5_io/hdf5_io.py,sha256=ePzAZEH0O6AUwaXYCmWsPHcAQ39Q4-XALjvs60oTXww,82704
45
- pynibs/hdf5_io/xdmf.py,sha256=1IvpyFnb_fDClBrpt8v7P1SOD7qtfqZ_nPZ-SYiiNL0,67767
46
- pynibs/mesh/__init__.py,sha256=CJUPqvhjQGYY49vQ4N8kPUh29XP_m00VNp1A6AwnyyQ,78
47
- pynibs/mesh/mesh_struct.py,sha256=W205wx1kqrnA_eLevbxgwBy7f3iPwD4NTkMGVAKNH9U,61386
48
- pynibs/mesh/transformations.py,sha256=DeR2zPk_2TotJIxWU5MRtQoRU7oEQgGuhdM0-d8GaTY,34586
49
- pynibs/mesh/utils.py,sha256=6NaiAB_aRR57xopyMdt1OcKxLf0eSpe0DKj-Lyh_Yus,41915
50
- pynibs/models/_TMS.py,sha256=WSePz-kE4KSQbYOy_VeTo9GD662BkMc3zUUl8iR2HII,9201
51
- pynibs/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
- pynibs/neuron/__init__.py,sha256=M03aDpT-q4Bkk8_hKy6oGZCQK8cJIqm9VWG9h0W7kuY,53
53
- pynibs/neuron/neuron_regression.py,sha256=cG3q-RV_XJ_rV1cgDJyF2nNh3oqPrJx6PvuC8hIPAO0,12275
54
- pynibs/neuron/util.py,sha256=g5EEtHGkLqw-OgMGmF6uPH_xGf0eK7NrQGCws6MNqmg,1524
55
- pynibs/optimization/__init__.py,sha256=M6RzMbgBnv78b9didBEyuSsroKFZ5WhvQDDOmICU-kA,165
56
- pynibs/optimization/multichannel.py,sha256=A2OQJyyrxs4eG20D8oTbJlJr7fnvBZST4eB1Mdaw6pI,9425
57
- pynibs/optimization/opt_mep.py,sha256=0nblDVf2ROCcPELRhB7E4AE319Yg2Wb9Y1N696v1qs4,4390
58
- pynibs/optimization/optimization.py,sha256=X8EtvMOC_fvpDNZ0_aEfDzNMQh_EiGEHMQ_EYEG49mk,70615
59
- pynibs/optimization/workhorses.py,sha256=LgAi_QjxZyjpqmfwSq3ZCamQ9d-QcEfMpeEm0aQn6GY,24332
60
- pynibs/pckg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
- pynibs/pckg/biosig/biosig4c++-1.9.5.src_fixed.tar.gz,sha256=gPEK71ZQzZm51WKj8gJU7i4mm-YJVSOgJasBhGBsKxE,1085676
62
- pynibs/pckg/libeep/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
- pynibs/pckg/libeep/pyeep.so,sha256=wk8CsDBa7un8Ig5a-SQaV2XGwJbqn_ltuyCC2HiLrRM,230704
64
- pynibs/regression/__init__.py,sha256=wf0VvcvPDs8mSHtXhH2IfyyJzrZ059xCUFeXyziJ7kA,427
65
- pynibs/regression/dual_node_detection.py,sha256=CGvmCk9PnJC2Geej5zlk2fPihaDlIW0256SpzhqPWi0,101557
66
- pynibs/regression/regression.py,sha256=rn_YUkquFcV58gW5JMrdxC41CFffBVYfp-4ftkYj2WU,119296
67
- pynibs/regression/score_types.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
- pynibs/roi/__init__.py,sha256=lBFRgjh1lBzpb_dHYZ-v_7KhpycfCBdRHkavihxbRwQ,46
69
- pynibs/roi/roi.py,sha256=KLjTFnzsyz1MGe-1BtyWTbgaDvQQxhhJKZ1KOQuQAaU,34892
70
- pynibs/roi/roi_structs.py,sha256=jxAnDXKiiXpAn7CuDa8hwsnJ9rp3cooTQQx_5U5IPm0,53472
71
- pynibs/tests/test_coil.py,sha256=fU0j3jl2I3zmg3LzpyojqG-6nJgBS_fWSwSyqJa9rsQ,25942
72
- pynibs/tests/test_elements2nodes.py,sha256=as6jfeSv0epBUc5QAozMOAGZLhmsx2P0oOtl-U83czg,5154
73
- pynibs/tests/test_mesh_transformations.py,sha256=PtLF9H-eVxe5YMUdwlgGl4I4Ha6y77BpCRIwvlfRy3k,6252
74
- pynibs/tests/test_mesh_utils.py,sha256=0ZRRiFpkC6D22A9dlWsH9-mA-1al30kg7tGzMUG5fhI,5546
75
- pynibs/tests/test_nnav_imports.py,sha256=OfxVrFLPAHBbuBXizCIqqfNOiOsfX5aEFhTLBHTef-Y,5088
76
- pynibs/tests/test_quality_measures.py,sha256=kQR9k9e7DIrqDpt60CLgGnqvqCvv2CQDoRbx1ohJBpI,4517
77
- pynibs/tests/test_regressdata.py,sha256=tsRD7QmWUauEgpPkCYTEVfHCTU6BOWbWOTyeszp3bDU,12249
78
- pynibs/tests/test_roi.py,sha256=lF3znlMFv33-LwSBDOVP2rlLfHNXNz9YcSvULWGawZI,504
79
- pynibs/tests/test_rotations.py,sha256=vdxXqPeySo82Bam7n63FqA6rQcXpr0cXljn7-OVVcwA,4167
80
- pynibs/tests/test_subject.py,sha256=RHY_5uM_Qd4VZ0mAW8DMWLMEPFDCBJeguvkdLtNP_vA,2973
81
- pynibs/tests/test_util.py,sha256=QIbswpF2GXpGjFYYMqMG6NUVqDAP3WRBDy5AFmQ6uVg,737
82
- pynibs/tests/data/InstrumentMarker20200225163611937.xml,sha256=44ZAMmWECphISXlWmjUNbXVGNhquYMQpsv_Cx8V0J4c,1226
83
- pynibs/tests/data/TriggerMarkers_Coil0_20200225163443682.xml,sha256=FNxaea7kvp_DxDvO7aQR_XwQnyv5tAFaa2LepMsT1NA,964
84
- pynibs/tests/data/TriggerMarkers_Coil1_20200225170337572.xml,sha256=rWvyb0zr3BBiNu2skoFX1jTcpQ47C5a1jaMViqXOWRk,341464
85
- pynibs/tests/data/Xdmf.dtd,sha256=DA6s_RbRNDO19PN3jXWGAbpUiPVm0w3o70J43SwzAjU,3475
86
- pynibs/tests/data/brainsight_niiImage_nifticoord.txt,sha256=lg3YsF-0yDM4HAP259fpt4zErDo0ayPtDIO2UHIDuCw,25531
87
- pynibs/tests/data/brainsight_niiImage_nifticoord_largefile.txt,sha256=zHgf2MjYnGN9ZB6DjclXkbpOAK65Irv3mek6A6uIsgY,376846
88
- pynibs/tests/data/brainsight_niiImage_niifticoord_mixedtargets.txt,sha256=U9Nu9zrSTBQoT06BsL2yRBFtbg-HRhxxs5c2grPw8wU,6678
89
- pynibs/tests/data/create_subject_testsub.py,sha256=6g9qg8UkfOvUfzci53BjjYQurFxbCwGX5w-y-QbzKaA,18775
90
- pynibs/tests/data/data.hdf5,sha256=v7-bryLXD1vC6MaeDn7RRiOBixvbqOFvQVOR-dD4sFA,129968
91
- pynibs/tests/data/geo.hdf5,sha256=vJmeL5ZVHcQdyOXVmhR8gU1IblLfil9R_wFcC_HZ7sk,2625592
92
- pynibs/tests/test_hdf5_io/test_xdmf.py,sha256=prkjZjkSPBGOlkcBuzHZt1NWjXNXPNjj66nhmFOROuw,2009
93
- pynibs/util/__init__.py,sha256=I-64wp5bAf3wk1u8BnyFCrclCZlJeuK9V7emFTH9I6k,100
94
- pynibs/util/dosing.py,sha256=KqtLJvi9Z93tUy8sH3JDSdNGQspeD5ePLtcW9ochktc,9236
95
- pynibs/util/quality_measures.py,sha256=f13RU8bYog32A98V1R7jsU0seldnRQ5VGIcxlKJQr54,21686
96
- pynibs/util/rotations.py,sha256=Mkre2YdCyNOoVY7dJM3iWBSzYcptjWxPQgStbLl3z8M,9133
97
- pynibs/util/simnibs.py,sha256=K6kQXYHvOZYUPMUivhWtgouXkdOLeW6D9dIF8ngBSrI,31635
98
- pynibs/util/util.py,sha256=XA_p1PEM3OgSXxdSQpplCexpEBO4F_aeQg0I-2LKOjo,20484
99
- pynibs/visualization/__init__.py,sha256=K3uGzZBM3plKsVGkGZ0bb0-oLRfT8l5PQIqTkTwfVmE,48
100
- pynibs/visualization/para.py,sha256=lnyWph3DpLtgc2ef8tovSlTTEjBFRzaWP8ycSti5NkM,185081
101
- pynibs/visualization/plot_2D.py,sha256=rcCgVilMqCqJceHXMvwwo05OrxwYcuQv6lAA2TDKFn4,5139
102
- pynibs/visualization/render_3D.py,sha256=YaW_-cgrH7UrSqspWekZMG3__lKbsFEF6uiF3O8dbxM,14871
103
- pyNIBS-0.2024.8.dist-info/LICENSE,sha256=GkQ9UpUz_pzXqfniZT3PopCfmi1K2wSZpiIqcHnMbMA,32476
104
- pyNIBS-0.2024.8.dist-info/METADATA,sha256=DZiMkI6qHoZ_h6WJF0VDN28COZAJz9kty-5j-H3jGzk,43182
105
- pyNIBS-0.2024.8.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
106
- pyNIBS-0.2024.8.dist-info/top_level.txt,sha256=9ZHaYB8yuIaluoqNxocpuDPbJak9szUD0bESYmGZpgQ,7
107
- pyNIBS-0.2024.8.dist-info/RECORD,,
@@ -1,59 +0,0 @@
1
- ########################################################################################################################
2
- # This configuration file can be used to set values in pynibs.Element() that influence the regression. #
3
- ########################################################################################################################
4
- #
5
- #
6
- ############################################## General regression concept ##############################################
7
- # While trying to find the best fit, many possible regression functions are calculated and the best one is picked.
8
- # Usually, that is the one that explains the most noise, meaning that the data points have a minimal distance to the
9
- # regression function. The function exp0 always looks like the following term, with varying coefficients x_0 and r:
10
- ## y = e^{r(x-x_0)}
11
- ## (r : Slope parameter (steepness))
12
- ## (x0 : Horizontal shift along the abscissa)
13
-
14
- # The usual approach is to start with a function described by some initial values (init_vals) for x_0 and r and try out
15
- # many other values within the value limits (limits), minimizing the distance between regression function and real data.
16
- # During refitting, different initial vales (calculated within the random_vals_init_range) are used to see whether a
17
- # better result can be achieved.
18
-
19
- ############################################### Picking suitable values ################################################
20
- # Initial values for the regression coefficients
21
- init_vals:
22
- r: 0.1
23
- x0: 10
24
- # Strategy: Pick the values you may expect the result to have, or that are not far-fetched. Picking reasonable initial
25
- # values can speed up the fitting procedure.
26
-
27
- # Values that limit all possible regression coefficients:
28
- limits:
29
- r:
30
- - 1.0e-12
31
- - 100
32
- x0:
33
- - 0
34
- - 1000
35
- # Strategy: Rather wide range recommended, since a few points could have very extreme values and therefore be
36
- # approximated by a function very different from the expected values. E.g. a multiple of the presented data range.
37
- # (Note: This should not be used to factor out outliers, since an approximation will still be calculated, but with too
38
- # narrow limits it will just be a very bad one.)
39
-
40
- # Value range for the calculation of new initial values for refits:
41
- random_vals_init_range:
42
- r:
43
- - 0
44
- - 0.2
45
- x0:
46
- - 0
47
- - 10
48
- # Strategy: During refitting, new initial values are calculated by picking a random number between these lower and upper
49
- # bounds, so the range should be a lot smaller than 'limits' and somewhat symmetrical around the 'init_vals'.
50
-
51
-
52
- # Example usage:
53
- ##
54
- ## configfile = configuration_exp0.yaml
55
- ## with open(configfile, "r") as yamlfile:
56
- ## config = yaml.load(yamlfile, Loader=yaml.FullLoader)
57
- ##
58
- ## pynibs.regress_data(...,
59
- ## **configfile)
@@ -1,61 +0,0 @@
1
- ########################################################################################################################
2
- # This configuration file can be used to set values in pynibs.Element() that influence the regression. #
3
- # The values in this version are optimized for MEP data. #
4
- ########################################################################################################################
5
- #
6
- #
7
- ############################################## General regression concept ##############################################
8
- # While trying to find the best fit, many possible regression functions are calculated and the best one is picked.
9
- # Usually, that is the one that explains the most noise, meaning that the data points have a minimal distance to the
10
- # regression function. With linear regression, this function always looks like the following term, with varying
11
- # coefficients m and n:
12
- ## y = m*x + n
13
- ## (m is the slope)
14
- ## (n is the intercept with the y-axis)
15
-
16
- # The usual approach is to start with a function described by some initial values (init_vals) for m and n and try out
17
- # many other values within the value limits (limits), minimizing the distance between regression function and real data.
18
- # During refitting, different initial vales (calculated within the random_vals_init_range) are used to see whether a
19
- # better result can be achieved.
20
-
21
- ############################################### Picking suitable values ################################################
22
- # Initial values for the regression coefficients:
23
- init_vals:
24
- m: 0.3
25
- n: -1
26
- # Strategy: Pick the values you may expect the result to have, or that are not far-fetched. Picking reasonable initial
27
- # values can speed up the fitting procedure.
28
-
29
- # Values that limit all possible regression coefficients:
30
- limits:
31
- m:
32
- - -100
33
- - 100
34
- n:
35
- - -100
36
- - 100
37
- # Strategy: Rather wide range recommended, since a few points could have very extreme values and therefore be
38
- # approximated by a function very different from the expected values. E.g. a multiple of the presented data range.
39
- # (Note: This should not be used to factor out outliers, since an approximation will still be calculated, but with too
40
- # narrow limits it will just be a very bad one.)
41
-
42
- # Value range for the calculation of new initial values for refits:
43
- random_vals_init_range:
44
- m:
45
- - 0
46
- - 100
47
- n:
48
- - 0
49
- - 0.3
50
- # Strategy: During refitting, new initial values are calculated by picking a random number between these lower and upper
51
- # bounds, so the range should be a lot smaller than 'limits' and somewhat symmetrical around the 'init_vals'.
52
-
53
-
54
- # Example usage:
55
- ##
56
- ## configfile = configuration_linear_MEP.yaml
57
- ## with open(configfile, "r") as yamlfile:
58
- ## config = yaml.load(yamlfile, Loader=yaml.FullLoader)
59
- ##
60
- ## pynibs.regress_data(...,
61
- ## **configfile)
@@ -1,61 +0,0 @@
1
- ########################################################################################################################
2
- # This configuration file can be used to set values in pynibs.Element() that influence the regression. #
3
- # The values in this version are optimized for reaction time data. #
4
- ########################################################################################################################
5
- #
6
- #
7
- ############################################## General regression concept ##############################################
8
- # While trying to find the best fit, many possible regression functions are calculated and the best one is picked.
9
- # Usually, that is the one that explains the most noise, meaning that the data points have a minimal distance to the
10
- # regression function. With linear regression, this function always looks like the following term, with varying
11
- # coefficients m and n:
12
- ## y = m*x + n
13
- ## (m is the slope)
14
- ## (n is the intercept with the y-axis)
15
-
16
- # The usual approach is to start with a function described by some initial values (init_vals) for m and n and try out
17
- # many other values within the value limits (limits), minimizing the distance between regression function and real data.
18
- # During refitting, different initial vales (calculated within the random_vals_init_range) are used to see whether a
19
- # better result can be achieved.
20
-
21
- ############################################### Picking suitable values ################################################
22
- # Initial values for the regression coefficients:
23
- init_vals:
24
- m: 0.1
25
- n: 300
26
- # Strategy: Pick the values you may expect the result to have, or that are not far-fetched. Picking reasonable initial
27
- # values can speed up the fitting procedure.
28
-
29
- # Values that limit all possible regression coefficients:
30
- limits:
31
- m:
32
- - -10000
33
- - 10000
34
- n:
35
- - -30000
36
- - 30000
37
- # Strategy: Rather wide range recommended, since a few points could have very extreme values and therefore be
38
- # approximated by a function very different from the expected values. E.g. a multiple of the presented data range.
39
- # (Note: This should not be used to factor out outliers, since an approximation will still be calculated, but with too
40
- # narrow limits it will just be a very bad one.)
41
-
42
- # Value range for the calculation of new initial values for refits:
43
- random_vals_init_range:
44
- m:
45
- - -22
46
- - 22
47
- n:
48
- - -50
49
- - 500
50
- # Strategy: During refitting, new initial values are calculated by picking a random number between these lower and upper
51
- # bounds, so the range should be a lot smaller than 'limits' and somewhat symmetrical around the 'init_vals'.
52
-
53
-
54
- # Example usage:
55
- ##
56
- ## configfile = configuration_linear_RT.yaml
57
- ## with open(configfile, "r") as yamlfile:
58
- ## config = yaml.load(yamlfile, Loader=yaml.FullLoader)
59
- ##
60
- ## pynibs.regress_data(...,
61
- ## **configfile)
@@ -1,68 +0,0 @@
1
- ########################################################################################################################
2
- # This configuration file can be used to set values in pynibs.Element() that influence the regression. #
3
- # The values in this version are optimized for MEP data. #
4
- ########################################################################################################################
5
- #
6
- #
7
- ############################################## General regression concept ##############################################
8
- # While trying to find the best fit, many possible regression functions are calculated and the best one is picked.
9
- # Usually, that is the one that explains the most noise, meaning that the data points have a minimal distance to the
10
- # regression function. The function sigmoid4 always looks like the following term, with varying coefficients:
11
- ## y = y_0 + \frac{amp - y_0}{1+e^{-r(x-x_0)}}
12
- ## (x0 : Horizontal shift along the abscissa)
13
- ## (r : Slope parameter (steepness))
14
- ## (amp : Maximum value the sigmoid converges to)
15
- ## (y0 : Offset value of the sigmoid)
16
- # Note: The fourth parameter y0 is the only difference between sigmoid and sigmoid4. It presents the possibility to
17
- # factor in an offset in y-direction.
18
-
19
- # The usual regression approach is to start with a function described by some initial values (init_vals) and try out
20
- # many other values within the value limits (limits), minimizing the distance between regression function and real data.
21
- # During refitting, different initial vales (calculated within the random_vals_init_range) are used to see whether a
22
- # better result can be achieved.
23
-
24
- element_params:
25
- ############################################### Picking suitable values ################################################
26
- # Values transforming the initial regression coefficients:
27
- init_vals:
28
- x0: # set initial x_0 to rate p of the x-data range
29
- p: 0.75
30
- r: # slope of tangent over middle of 1/p of the e-range (e.g. 25% = 0.25 = 1/4 -> set p=4)
31
- p: 4
32
- amp: # amp = y_max * m + t
33
- m: 1
34
- t: 0
35
- y0: # y0 = y_min * m + t
36
- m: 1
37
- t: 0
38
- # Strategy: Pick the values you may expect the result to have, or that are not far-fetched. Picking reasonable initial
39
- # values can speed up the fitting procedure.
40
-
41
- # Values that limit all possible regression coefficients:
42
- limits:
43
- limit_factor: # the initial values get multiplied with "limit_factor" to calculate the limits
44
- 100
45
- y0: # y0 \in [c, y_max * m]
46
- c: 1.0e-12
47
- m: 1
48
- # Strategy: Rather wide range recommended, since a few points could have very extreme values and therefore be
49
- # approximated by a function very different from the expected values. E.g. a multiple of the presented data range.
50
- # (Note: This should not be used to factor out outliers, since an approximation will still be calculated, but with too
51
- # narrow limits it will just be a very bad one.)
52
-
53
- # Value range for the calculation of new initial values for refits:
54
- random_vals_init_range:
55
- range_factor: # the initial values get multiplied with "range_factor" to calculate this range
56
- 3
57
- # Strategy: During refitting, new initial values are calculated by picking a random number between these lower and upper
58
- # bounds, so the range should be a lot smaller than 'limits' and somewhat symmetrical around the 'init_vals'.
59
-
60
-
61
- # Example usage:
62
- ##
63
- ## configfile = configuration_sigmoid4.yaml
64
- ## with open(configfile, "r") as yamlfile:
65
- ## config = yaml.load(yamlfile, Loader=yaml.FullLoader)
66
- ##
67
- ## pynibs.regress_data(...,
68
- ## **configfile)
@@ -1,238 +0,0 @@
1
- # Network detection: Guide to using the configuration files
2
-
3
- All settings and parameters relevant in the network detection process can be adjusted via the configuration files.
4
- Here is a short explanation of the process and the configuration entries.
5
-
6
- ## Loading the config file
7
-
8
- Using the following code you can add the desired configuration file to your script:
9
-
10
- import yaml
11
- # choose file name and path
12
- configfile = 'configuration_TEMPLATE.yaml'
13
- config_path = '/data/pt_01756/software/git/pynibs/data/network mapping configuration'
14
- # read configfile
15
- with open(f'{config_path}/{configfile}', "r") as yamlfile:
16
- config = yaml.load(yamlfile, Loader=yaml.FullLoader)
17
- print("-" * 64)
18
- print("Using file '" + configfile + "' for current parameter setting.")
19
- print("-" * 64)
20
-
21
- Aside from that, the NDA application and testing functions only need the experimental data (e_matrix, response_values, roi_surf, fn_geo)
22
- and the base_path (output folder).
23
-
24
- ## Configuration Parameters Guide
25
-
26
- There are two different main functions: `network_detection_algorithm_testing()` and
27
- `network_detection_algorithm_application()`. The configuration parameters are very similar, many entries apply to both.
28
- They are presented separately in the following for simplicity.
29
-
30
-
31
- ### Application (real data)
32
-
33
- <u> Binarization </u>
34
-
35
- Data binarization is a crucial preprocessing step since it determines what data the algorithm considers as affected.
36
- Carefully adjust to the data at hand. Note that this is only relevant for the scoring_method 'clf'.
37
- Default function is `binarize_response_data()`. For MEPs, you could also use `binarize_real_meps()`.
38
-
39
- - ``bin_method``: Method used to calculate the binarization threshold.
40
- - Options: `'mean'`, `'slope'`, `'median'`.
41
-
42
- - ``bin_factor``: Multiplied with the value of `bin_method(response)` is used as binarization threshold.
43
- (Above=1=affected, below=0=not affected).
44
-
45
- <u> Scoring </u>
46
-
47
- - ``scoring_method``: Select the method for the computation of hotspot scores per ROI element.
48
- - Options: `'clf'`, `'regression'`, `'regress_data'` (single hotspot), `'mi'` (single hotspot).
49
- - Remark:
50
- Network detection:
51
- - `'clf'`: Scores are based on the accuracies of Decision Tree Classifiers of pairwise element combinations. (recommended)
52
- - `'regression'`: Scores are the R2-scores of multivariable regression.
53
- - `'regress_data'`: Scores are the R2-score of a sigmoidal fit.
54
- - `'mi'`: Scores are the mutual information scores of the e-fields and the response variables.
55
-
56
- - ``scoring_emag_thr``: Threshold above which elements are scored.
57
- More specifically: Per element, the `e_mag_max` as the
58
- maximum e-field magnitude reached in all zaps indicates how accessible an element is to stimulation (gyral element have
59
- the highest `e_mag_max`). This parameter is the lower bound for the `e_mag_max` of all scored elements.
60
- - Remark: The higher the threshold, the higher the scored elements are on the cortical ROI.
61
-
62
- - ``scoring_interval``: Interval at which elements are scored, determines subsampling resolution.
63
- - Remark: `1/scoring_interval` elements are scored. Adjust to balance between computational efficiency and scoring detail.
64
-
65
- <u>Detection</u>
66
-
67
- - ``acc_thr``: Lower bound for the accuracy (clf) or scores (other scoring methods) of hotspot elements. Below that,
68
- an element will not be categorized as hotspot.
69
- - Remark: See recommendation sheet``data/network mapping configuration/recommendations_for_accuracy_threshold.md``.
70
- For the clf-method, there is a table included recommending accuracy thresholds based on sample size.
71
-
72
- - ``corr_thr``: Correlation threshold (upper bound) for hotspot pairs.
73
- - Remark: When a second hotspot candidate too highly
74
- correlates with the first one, it is ignored, to avoid double detection of a single hotspot. Preliminary analyses have
75
- shown that this threshold does not have a lot of impact.
76
- - 1: no limitation to how correlated they are, 0: only one hotspot allowed)
77
-
78
-
79
- <u>Additional Info</u>
80
-
81
- - ``note``: Arbitrary string for additional comments or notes.
82
-
83
- - ``fn_flag``: String to be mentioned in the output files. (to distinguish)
84
-
85
- - ``subject_id``: ID of the subject.
86
- - ``response_spec``: Specification (if any) to retrieve the response. (e.g. FDI, APB,...)
87
- - ``e_field``: Specification (if any) to retrieve the e-field values. (E_tan, E_mag, E_norm)
88
-
89
-
90
- The remaining 8 entries are not saved in the results overview. Namely the following:
91
-
92
- - ``save_files``: (boolean) Whether to save hotspot scores and scoremaps as HDF5 files.
93
-
94
- - ``write_effect_map``: (boolean) Whether to create an effect map. See more under <u> Effect map </u>.
95
-
96
- - ``fn_results``: Filename for the CSV the results/evaluation should be saved in.
97
- To understand output, see ``output_documentation``.
98
-
99
-
100
- <u> Effect map </u>
101
-
102
- If the output should include an effect map (useful for validation), the following parameters should be included.
103
-
104
- - ``effect_full``: The e-field magnitude that approximately needs to be reached to achieve the desired effect (in µV).
105
-
106
- - ``effect_saturation``: The approx. e-field magnitude at which the effect is expected to saturate (in µV).
107
-
108
- The effect map depicts the following: Assuming a network as detected was in effect, where can the effect
109
- be expected highest/lowest? I.e., where is the response expected to be affected most/least?
110
- This can be useful during experimental validation.
111
-
112
- <u>Plotting</u>
113
-
114
- - ``plot_std``: (boolean) Whether to plot the response data with color indicating response value, and the e-field values
115
- of the chosen hotspots on x- and y-axis.
116
-
117
- - ``plot_bin``: (boolean) Whether to plot the binarized response data with color indicating response category,
118
- and the e-field values of the chosen hotspots on x- and y-axis.
119
-
120
- - ``plot_curves``: (boolean) Whether to create two response data scatter plots, one for each chosen hotspot. (e-field
121
- magnitudes on x-axis, response on y-axis).
122
-
123
-
124
- ### Testing (generated data)
125
-
126
- <u> Artificial Data Generation </u>
127
-
128
- The response will be generated as if `hotspot_elm0` and `hotspot_elm1`
129
- form a network of type `network_type`. See function `create_response_data()` for the detailed process.
130
-
131
- - ``hotspot_elm0``: `[0, n_elms-1]`
132
- Specify the index of the first hotspot element.
133
-
134
- - ``hotspot_elm1``: `[0, n_elms-1]`
135
- Specify the index of the second hotspot element.
136
-
137
- - ``sample_size``: The desired number of samples. Bounded by the number of available e-fields.
138
- If `sample_size` is smaller, e-fields are randomly chosen.
139
- (See `create_dummy_binary_data.py` for more elaborate e-field choosing functions.)
140
-
141
- - ``rn_seed``: Seed for all processes that are in some way random, ensuring reproducibility.
142
-
143
- - ``distribution_type``: Defines the statistical distribution type for data generation.
144
- - Options: `'normal'`, `'logistic'`.
145
- - Remark: `'ExGaussian'` is also an option but is not fully implemented.
146
-
147
- - ``network_type``: Choose the network the two hotspots are forming.
148
- - Options: `['NO', 'AND', '1_INH_0', 'SH_0', '0_INH_1', 'SH_1', 'XOR', 'OR']`.
149
- - Remark:
150
- - (1) NO: No network ("pseudonetwork").
151
- - (2) AND: Dual node network: Effect if elm0 AND elm1 are stimulated.
152
- - (3) 1_INH_0: Dual node network: elm1 inhibits elm0, elm0 has an effect.
153
- - (4) SH_0: Single hotspot: Only elm0 has an effect.
154
- - (5) 0_INH_1: Dual node network: elm0 inhibits elm1, elm1 has an effect.
155
- - (6) SH_1: Single hotspot: Only elm1 has an effect.
156
- - (7) XOR: Dual node network: elm0 inhibits elm1, elm1 inhibits elm0. Both have an effect.
157
- - (8) OR: Dual node network: Effect if either elm0 or elm1 is stimulated.
158
-
159
- - ``effect_full``: E-field magnitude at which the desired effect fully manifests.
160
- - Remark: What value makes sense here strongly depends on the range of the e-field values.
161
- For normalized e-field values (1% stimulator intensity) across the motor cortex, values tend to range up to 1.6 µV.
162
- We chose to normalize the effect to 0.9 µV.
163
-
164
- - ``effect_saturation``: E-field magnitude at which the desired effect saturates.
165
- - Remark: See `effect_full`. We chose an effect saturation at 1.2 µV.
166
-
167
- - ``jitter_ratio``: Percentage of data receiving random response values (uniformly distributed within the expected range).
168
-
169
- - ``jitter_scale``: Multiplied with the mean value to calculate distribution deviation. Note that a heteroscedastic
170
- distribution is implemented at the moment -> the higher the effect, the higher the deviation.
171
-
172
-
173
- <u> Binarization </u>
174
-
175
- Data binarization is a crucial preprocessing step since it determines what data the algorithm considers as affected.
176
- Carefully adjust to the data at hand.
177
- Default function is `binarize_response_data()`. For MEPs, you could also use `binarize_real_meps()`.
178
-
179
- - ``bin_method``: Method used to calculate the binarization threshold.
180
- - Options: `'mean'`, `'slope'`, `'median'`.
181
-
182
- - ``bin_factor``: Multiplied with the value of `bin_method(response)` is used as binarization threshold.
183
- (Above=1=affected, below=0=not affected).
184
-
185
- <u> Scoring </u>
186
-
187
- - ``scoring_method``: Select the method for the computation of hotspot scores per ROI element.
188
- - Options: `'clf'`, `'regression'`, `'regress_data'` (single hotspot), `'mi'` (single hotspot).
189
- - Remark:
190
- Network detection:
191
- - `'clf'`: Scores are based on the accuracies of Decision Tree Classifiers of pairwise element combinations. (recommended)
192
- - `'regression'`: Scores are the R2-scores of multivariable regression.
193
- - `'regress_data'`: Scores are the R2-score of a sigmoidal fit.
194
- - `'mi'`: Scores are the mutual information scores of the e-fields and the response variables.
195
-
196
- - ``scoring_emag_thr``: Threshold above which elements are scored.
197
- More specifically: Per element, the `e_mag_max` as the
198
- maximum e-field magnitude reached in all zaps indicates how accessible an element is to stimulation (gyral element have
199
- the highest `e_mag_max`). This parameter is the lower bound for the `e_mag_max` of all scored elements.
200
- - Remark: The higher the threshold, the higher the scored elements are on the cortical ROI.
201
-
202
- - ``scoring_interval``: Interval at which elements are scored, determines subsampling resolution.
203
- - Remark: `1/scoring_interval` elements are scored. Adjust to balance between computational efficiency and scoring detail.
204
-
205
- <u>Detection</u>
206
-
207
- - ``acc_thr``: Lower bound for the accuracy (clf) or scores (other scoring methods) of hotspot elements. Below that,
208
- an element will not be categorized as hotspot.
209
- - Remark: Remark: See recommendation sheet``data/network mapping configuration/recommendations_for_accuracy_threshold.md``.
210
- For the clf-method, there is a table included recommending accuracy thresholds based on sample size.
211
-
212
- - ``corr_thr``: Correlation threshold (upper bound) for hotspot pairs.
213
- - Remark: When a second hotspot candidate too highly
214
- correlates with the first one, it is ignored, to avoid double detection of a single hotspot. Preliminary analyses have
215
- shown that this threshold does not have a lot of impact.
216
- - 1: no limitation to how correlated they are, 0: only one hotspot allowed)
217
-
218
- - ``note``: Arbitrary string for additional comments or notes.
219
-
220
- The remaining 5 entries are not saved in the results overview. Namely the following:
221
-
222
- <u>Evaluation</u>
223
-
224
- - ``save_files``: (boolean) Whether to save hotspot scores and scoremaps as HDF5 files.
225
-
226
- - ``fn_results``: Filename for the CSV the results/evaluation should be saved in.
227
- To understand output, see ``output_documentation``.
228
-
229
- <u>Plotting</u>
230
-
231
- - ``plot_std``: (boolean) Whether to plot the response data with color indicating response value, and the e-field values
232
- of the chosen hotspots on x- and y-axis.
233
-
234
- - ``plot_bin``: (boolean) Whether to plot the binarized response data with color indicating response category,
235
- and the e-field values of the chosen hotspots on x- and y-axis.
236
-
237
- - ``plot_curves``: (boolean) Whether to create two response data scatter plots, one for each chosen hotspot. (e-field
238
- magnitudes on x-axis, response on y-axis).
@@ -1,42 +0,0 @@
1
- # This configuration file contains settings and parameters for the application of the network detection algorithm.
2
-
3
- # BINARIZATION
4
- # binarization threshold is calculated as follows: method(response) * bin_factor
5
- bin_method: 'mean' # mean, median or slope
6
- bin_factor: 1.0
7
-
8
- # SCORING
9
- scoring_method: 'clf' # dual network expected: 'clf' or 'regression', single hotspot expected: 'regress_data' or 'mi'
10
- scoring_emag_thr: 0 # elements with `max(e_mag) > scoring_emag_thr` are scored
11
- scoring_interval: 22 # subsampling resolution: `1/scoring_interval' of all elements are scored
12
-
13
- # DETECTION
14
- acc_thr: 0.70 # accuracy threshold for hotspot elements (lower bound)
15
- corr_thr: 0.5 # correlation(hot0, hot1) threshold for hotspot pairs (upper bound)
16
-
17
- # ADDITIONAL INFO
18
- note: 'MI_score mapping reasons' # arbitrary string # NO COMMAS
19
- fn_flag: 'testrun_11' # mentioned in the file name
20
- subject_id: '35357.53' #'09440.22' # '13061.30' 35334.2b
21
- response_spec: 'FDI' # specification (if any) to retrieve the response
22
- efield_spec: 'E_mag' # E_mag, E_tan, E_norm
23
-
24
-
25
- ####################################################
26
- # The following is not saved in the evaluation sheet:
27
- ####################################################
28
-
29
- save_files: True # whether to save experimental data & hotspot score data as hdf5
30
- write_effect_map: True # whether to create effect map which can be used during validation
31
- fn_results: 'evaluation_template' # file name of the .csv to save the results in
32
-
33
- # EFFECT
34
- # parameters used to create effect map - depends on e-field data and does not influence mapping result
35
- effect_full: 42 # at what e-field magnitude the desired effect is expected to manifest fully
36
- effect_saturation: 70 # at what e-mag the desired effect should saturate
37
-
38
- # PLOTTING of the found data (not in evaluation sheet)
39
- plot_std: True # plot e-mag hotspot0 x emag hotspot1 x response
40
- plot_bin: True # plot e-mag hotspot0 x emag hotspot1 x binarized response
41
- plot_curves: True # plot e-mag hotspot0 x response and e-mag hotspot1 x response
42
-