pyNIBS 0.2024.8__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.
- pyNIBS-0.2024.8.dist-info/LICENSE +623 -0
- pyNIBS-0.2024.8.dist-info/METADATA +723 -0
- pyNIBS-0.2024.8.dist-info/RECORD +107 -0
- pyNIBS-0.2024.8.dist-info/WHEEL +5 -0
- pyNIBS-0.2024.8.dist-info/top_level.txt +1 -0
- pynibs/__init__.py +34 -0
- pynibs/coil.py +1367 -0
- pynibs/congruence/__init__.py +15 -0
- pynibs/congruence/congruence.py +1108 -0
- pynibs/congruence/ext_metrics.py +257 -0
- pynibs/congruence/stimulation_threshold.py +318 -0
- pynibs/data/configuration_exp0.yaml +59 -0
- pynibs/data/configuration_linear_MEP.yaml +61 -0
- pynibs/data/configuration_linear_RT.yaml +61 -0
- pynibs/data/configuration_sigmoid4.yaml +68 -0
- pynibs/data/network mapping configuration/configuration guide.md +238 -0
- pynibs/data/network mapping configuration/configuration_TEMPLATE.yaml +42 -0
- pynibs/data/network mapping configuration/configuration_for_testing.yaml +43 -0
- pynibs/data/network mapping configuration/configuration_modelTMS.yaml +43 -0
- pynibs/data/network mapping configuration/configuration_reg_isi_05.yaml +43 -0
- pynibs/data/network mapping configuration/output_documentation.md +185 -0
- pynibs/data/network mapping configuration/recommendations_for_accuracy_threshold.md +77 -0
- pynibs/data/neuron/models/L23_PC_cADpyr_biphasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L23_PC_cADpyr_monophasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L4_LBC_biphasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L4_LBC_monophasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L4_NBC_biphasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L4_NBC_monophasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L4_SBC_biphasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L4_SBC_monophasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L5_TTPC2_cADpyr_biphasic_v1.csv +1281 -0
- pynibs/data/neuron/models/L5_TTPC2_cADpyr_monophasic_v1.csv +1281 -0
- pynibs/expio/Mep.py +1518 -0
- pynibs/expio/__init__.py +8 -0
- pynibs/expio/brainsight.py +979 -0
- pynibs/expio/brainvis.py +71 -0
- pynibs/expio/cobot.py +239 -0
- pynibs/expio/exp.py +1876 -0
- pynibs/expio/fit_funs.py +287 -0
- pynibs/expio/localite.py +1987 -0
- pynibs/expio/signal_ced.py +51 -0
- pynibs/expio/visor.py +624 -0
- pynibs/freesurfer.py +502 -0
- pynibs/hdf5_io/__init__.py +10 -0
- pynibs/hdf5_io/hdf5_io.py +1857 -0
- pynibs/hdf5_io/xdmf.py +1542 -0
- pynibs/mesh/__init__.py +3 -0
- pynibs/mesh/mesh_struct.py +1394 -0
- pynibs/mesh/transformations.py +866 -0
- pynibs/mesh/utils.py +1103 -0
- pynibs/models/_TMS.py +211 -0
- pynibs/models/__init__.py +0 -0
- pynibs/muap.py +392 -0
- pynibs/neuron/__init__.py +2 -0
- pynibs/neuron/neuron_regression.py +284 -0
- pynibs/neuron/util.py +58 -0
- pynibs/optimization/__init__.py +5 -0
- pynibs/optimization/multichannel.py +278 -0
- pynibs/optimization/opt_mep.py +152 -0
- pynibs/optimization/optimization.py +1445 -0
- pynibs/optimization/workhorses.py +698 -0
- pynibs/pckg/__init__.py +0 -0
- pynibs/pckg/biosig/biosig4c++-1.9.5.src_fixed.tar.gz +0 -0
- pynibs/pckg/libeep/__init__.py +0 -0
- pynibs/pckg/libeep/pyeep.so +0 -0
- pynibs/regression/__init__.py +11 -0
- pynibs/regression/dual_node_detection.py +2375 -0
- pynibs/regression/regression.py +2984 -0
- pynibs/regression/score_types.py +0 -0
- pynibs/roi/__init__.py +2 -0
- pynibs/roi/roi.py +895 -0
- pynibs/roi/roi_structs.py +1233 -0
- pynibs/subject.py +1009 -0
- pynibs/tensor_scaling.py +144 -0
- pynibs/tests/data/InstrumentMarker20200225163611937.xml +19 -0
- pynibs/tests/data/TriggerMarkers_Coil0_20200225163443682.xml +14 -0
- pynibs/tests/data/TriggerMarkers_Coil1_20200225170337572.xml +6373 -0
- pynibs/tests/data/Xdmf.dtd +89 -0
- pynibs/tests/data/brainsight_niiImage_nifticoord.txt +145 -0
- pynibs/tests/data/brainsight_niiImage_nifticoord_largefile.txt +1434 -0
- pynibs/tests/data/brainsight_niiImage_niifticoord_mixedtargets.txt +47 -0
- pynibs/tests/data/create_subject_testsub.py +332 -0
- pynibs/tests/data/data.hdf5 +0 -0
- pynibs/tests/data/geo.hdf5 +0 -0
- pynibs/tests/test_coil.py +474 -0
- pynibs/tests/test_elements2nodes.py +100 -0
- pynibs/tests/test_hdf5_io/test_xdmf.py +61 -0
- pynibs/tests/test_mesh_transformations.py +123 -0
- pynibs/tests/test_mesh_utils.py +143 -0
- pynibs/tests/test_nnav_imports.py +101 -0
- pynibs/tests/test_quality_measures.py +117 -0
- pynibs/tests/test_regressdata.py +289 -0
- pynibs/tests/test_roi.py +17 -0
- pynibs/tests/test_rotations.py +86 -0
- pynibs/tests/test_subject.py +71 -0
- pynibs/tests/test_util.py +24 -0
- pynibs/tms_pulse.py +34 -0
- pynibs/util/__init__.py +4 -0
- pynibs/util/dosing.py +233 -0
- pynibs/util/quality_measures.py +562 -0
- pynibs/util/rotations.py +340 -0
- pynibs/util/simnibs.py +763 -0
- pynibs/util/util.py +727 -0
- pynibs/visualization/__init__.py +2 -0
- pynibs/visualization/para.py +4372 -0
- pynibs/visualization/plot_2D.py +137 -0
- pynibs/visualization/render_3D.py +347 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Version: 12
|
|
2
|
+
# Coordinate system: NIfTI:Scanner
|
|
3
|
+
# Created by: Brainsight 2.4.9
|
|
4
|
+
# Units: millimetres, degrees, milliseconds, and microvolts
|
|
5
|
+
# Encoding: UTF-8
|
|
6
|
+
# Notes: Each column is delimited by a tab. Each value within a column is delimited by a semicolon.
|
|
7
|
+
# Target Name Loc. X Loc. Y Loc. Z m0n0 m0n1 m0n2 m1n0 m1n1 m1n2 m2n0 m2n1 m2n2
|
|
8
|
+
Grid 1 -30.8428 -5.3267 64.7916 0.6378 -0.7144 0.2877 0.4953 0.6666 0.5571 -0.5898 -0.2128 0.7790
|
|
9
|
+
Grid 2 -31.1844 -14.9263 63.9842 0.7363 -0.6115 0.2896 0.3934 0.7352 0.5521 -0.5505 -0.2926 0.7819
|
|
10
|
+
Grid 3 -30.7333 -24.8329 62.6843 0.8303 -0.4727 0.2951 0.2630 0.7993 0.5403 -0.4913 -0.3710 0.7880
|
|
11
|
+
Grid 4 -30.1749 -34.7806 60.9488 0.9044 -0.2782 0.3234 0.0730 0.8478 0.5253 -0.4203 -0.4515 0.7871
|
|
12
|
+
Grid 5 -29.4729 -44.6629 58.2659 0.9257 -0.1301 0.3552 -0.0774 0.8540 0.5145 -0.3703 -0.5038 0.7804
|
|
13
|
+
Grid 6 -39.0555 -5.2258 59.4733 0.5645 -0.7429 0.3598 0.4771 0.6494 0.5922 -0.6736 -0.1626 0.7210
|
|
14
|
+
Grid 7 -39.9336 -15.0727 59.2835 0.6394 -0.6779 0.3628 0.4046 0.6978 0.5910 -0.6538 -0.2311 0.7205
|
|
15
|
+
Grid 8 -39.6519 -24.8847 58.5993 0.7320 -0.5753 0.3649 0.3014 0.7538 0.5838 -0.6110 -0.3174 0.7252
|
|
16
|
+
Grid 9 -38.7227 -34.8693 56.5547 0.8163 -0.4331 0.3822 0.1573 0.8033 0.5744 -0.5559 -0.4088 0.7238
|
|
17
|
+
Grid 10 -37.2954 -44.3732 53.2071 0.8632 -0.2882 0.4145 0.0031 0.8240 0.5666 -0.5048 -0.4878 0.7122
|
|
18
|
+
Grid 11 -47.1255 -5.2334 53.2950 0.4881 -0.7510 0.4448 0.4363 0.6513 0.6209 -0.7560 -0.1090 0.6455
|
|
19
|
+
Grid 12 -47.0786 -14.9371 52.9875 0.5506 -0.7053 0.4465 0.3774 0.6874 0.6206 -0.7446 -0.1732 0.6447
|
|
20
|
+
Grid 13 -47.2444 -24.7992 51.8260 0.6180 -0.6410 0.4552 0.2969 0.7264 0.6198 -0.7280 -0.2479 0.6393
|
|
21
|
+
Grid 14 -46.3680 -34.6823 50.3981 0.7001 -0.5410 0.4661 0.1833 0.7670 0.6149 -0.6902 -0.3450 0.6361
|
|
22
|
+
Grid 15 -45.1875 -43.6119 48.0059 0.7603 -0.4267 0.4897 0.0512 0.7910 0.6097 -0.6475 -0.4385 0.6233
|
|
23
|
+
Sample 12 -58.9553 -33.2536 34.1801 -0.5251 0.3593 -0.7714 -0.0314 -0.9140 -0.4044 -0.8504 -0.1882 0.4913
|
|
24
|
+
Sample 13 -56.2248 -7.3385 42.9699 -0.6037 0.0452 -0.7959 -0.0186 -0.9989 -0.0427 -0.7970 -0.0110 0.6039
|
|
25
|
+
# Sample Name Session Name Index Assoc. Target Loc. X Loc. Y Loc. Z m0n0 m0n1 m0n2 m1n0 m1n1 m1n2 m2n0 m2n1 m2n2 Dist. to Target Target Error Angular Error Twist Error Stim. Power A Stim. Pulse Interval Stim. Power B Date Time Creation Cause Crosshairs Driver Offset Comment EMG Channels EMG Window Start EMG Window End
|
|
26
|
+
Sample 1 Session 1 1 Grid 1 -55.1479 6.1262 44.3384 -0.6211 -0.0364 -0.7829 -0.0146 -0.9982 0.0580 -0.7836 0.0475 0.6194 33.7674 33.0508 20.8341 -129.8152 (null) (null) (null) 2022-05-04 12:52:28.341 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
27
|
+
Sample 2 Session 1 2 Grid 1 -63.6209 -23.8103 27.8907 -0.4278 0.3416 -0.8368 -0.0301 -0.9307 -0.3646 -0.9034 -0.1308 0.4085 52.7041 49.9026 28.4977 -151.7541 (null) (null) (null) 2022-05-04 12:52:31.431 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
28
|
+
Sample 3 Session 1 3 Grid 1 -44.6242 30.0542 52.5229 -0.7433 -0.0531 -0.6669 -0.0132 -0.9955 0.0939 -0.6688 0.0786 0.7392 39.9031 39.7955 17.5155 -128.5574 (null) (null) (null) 2022-05-04 12:52:33.542 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
29
|
+
Sample 4 Session 1 4 Grid 3 -35.2757 6.7944 61.7833 -0.8588 -0.0578 -0.5090 -0.0116 -0.9912 0.1321 -0.5121 0.1194 0.8506 31.9645 31.5162 28.6470 -142.9211 (null) (null) (null) 2022-05-04 12:52:40.717 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
30
|
+
Sample 5 Session 1 5 Grid 3 -13.4808 18.3753 70.2118 -0.9549 -0.0136 -0.2965 -0.0134 -0.9960 0.0887 -0.2966 0.0886 0.9509 47.1302 46.7631 30.4431 -150.6771 (null) (null) (null) 2022-05-04 12:52:43.158 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
31
|
+
Sample 6 Session 1 6 Grid 3 -18.4564 55.0287 62.4736 -0.9595 -0.0753 -0.2716 -0.0051 -0.9589 0.2838 -0.2818 0.2737 0.9196 80.7999 78.7226 40.3975 -143.2218 (null) (null) (null) 2022-05-04 12:52:54.934 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
32
|
+
Sample 7 Session 1 7 Grid 3 -32.4728 23.8971 61.7426 -0.8603 -0.0216 -0.5093 -0.0143 -0.9977 0.0665 -0.5096 0.0644 0.8580 48.7701 48.6638 25.5026 -145.8697 (null) (null) (null) 2022-05-04 12:52:59.357 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
33
|
+
Sample 8 Session 1 8 Grid 8 -23.0275 17.9829 66.6807 -0.9408 -0.0111 -0.3388 -0.0141 -0.9973 0.0717 -0.3387 0.0722 0.9381 46.6831 46.4095 30.1882 -145.5609 (null) (null) (null) 2022-05-04 12:53:20.086 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
34
|
+
Sample 9 Session 1 9 Grid 8 -57.1984 -14.2254 41.3910 -0.5961 0.1265 -0.7929 -0.0223 -0.9897 -0.1411 -0.8026 -0.0664 0.5928 26.7886 26.6000 19.7113 -146.7670 (null) (null) (null) 2022-05-04 12:53:22.534 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
35
|
+
Sample 10 Session 1 10 Grid 8 -50.2868 19.9919 49.0658 -0.7051 -0.0108 -0.7091 -0.0157 -0.9994 0.0309 -0.7090 0.0329 0.7045 47.0945 47.0383 20.9906 -139.3842 (null) (null) (null) 2022-05-04 12:53:24.742 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
36
|
+
Sample 11 Session 1 11 Grid 11 -50.2218 -22.8565 49.3190 -0.7086 0.0993 -0.6985 -0.0215 -0.9926 -0.1193 -0.7052 -0.0695 0.7055 18.3294 18.3195 5.0398 -137.1064 (null) (null) (null) 2022-05-04 12:53:29.390 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
37
|
+
Sample 12 Session 1 12 Grid 11 -58.9553 -33.2536 34.1801 -0.5251 0.3593 -0.7714 -0.0314 -0.9140 -0.4044 -0.8504 -0.1882 0.4913 35.9229 35.4280 11.3312 -151.1384 (null) (null) (null) 2022-05-04 12:53:32.127 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
38
|
+
Sample 13 Session 1 13 Grid 11 -56.2248 -7.3385 42.9699 -0.6037 0.0452 -0.7959 -0.0186 -0.9989 -0.0427 -0.7970 -0.0110 0.6039 13.9224 13.8836 6.5408 -133.2619 (null) (null) (null) 2022-05-04 12:53:35.327 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
39
|
+
Sample 14 Session 1 14 Sample 13 -46.7327 8.0539 53.1294 -0.7357 -0.0184 -0.6771 -0.0152 -0.9989 0.0436 -0.6771 0.0424 0.7346 20.7422 20.6734 10.6270 3.4988 (null) (null) (null) 2022-05-04 12:57:40.904 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
40
|
+
Sample 15 Session 1 15 Sample 13 -64.2987 17.5635 28.9303 -0.4324 -0.0517 -0.9002 -0.0144 -0.9978 0.0642 -0.9016 0.0407 0.4307 29.7053 29.6203 11.9835 5.6368 (null) (null) (null) 2022-05-04 12:57:43.080 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
41
|
+
Sample 16 Session 1 16 Sample 13 -53.5237 -38.0805 40.9321 -0.5999 0.3424 -0.7231 -0.0314 -0.9132 -0.4064 -0.7994 -0.2211 0.5586 30.9277 30.7292 12.3387 -17.8797 (null) (null) (null) 2022-05-04 12:57:45.816 Button Mouse 0.0000 (null) (null) (null) (null)
|
|
42
|
+
# Planned Landmark Name Loc. X Loc. Y Loc. Z
|
|
43
|
+
LPA -75.2492 14.8688 -53.8637
|
|
44
|
+
Nasion 8.8695 102.2740 -14.0720
|
|
45
|
+
RPA 83.5259 10.3013 -61.3207
|
|
46
|
+
# Session Name Loc. X Loc. Y Loc. Z m0n0 m0n1 m0n2 m1n0 m1n1 m1n2 m2n0 m2n1 m2n2
|
|
47
|
+
Session 1 (null) (null) (null) (null) (null) (null) (null) (null) (null) (null) (null) (null)
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import numpy as np
|
|
3
|
+
from inspect import getsourcefile
|
|
4
|
+
|
|
5
|
+
import pynibs
|
|
6
|
+
|
|
7
|
+
# path of create_subject_XXXXX.py file (has to be in subjects root directoy
|
|
8
|
+
subject_folder = os.path.split(os.path.abspath(getsourcefile(lambda: 0)))[0]
|
|
9
|
+
|
|
10
|
+
# subject information
|
|
11
|
+
###########################################################################################################
|
|
12
|
+
subject_id = 'testsub'
|
|
13
|
+
fn_subject_obj = subject_folder + f'/{subject_id}.hdf5'
|
|
14
|
+
|
|
15
|
+
# mri information
|
|
16
|
+
###########################################################################################################
|
|
17
|
+
mri = [dict()]
|
|
18
|
+
|
|
19
|
+
mri[0]['fn_mri_T1'] = subject_folder + f'/mri/0/original/nifti/t1/2_T1_mprage_iso.nii.gz'
|
|
20
|
+
mri[0]['fn_mri_T2'] = subject_folder + f'/mri/0/original/nifti/t2/5_T2_cube_iso.nii.gz'
|
|
21
|
+
mri[0]['fn_mri_DTI'] = subject_folder + f'/mri/0/original/nifti/dti/7_HB4_diff_64dir_PA0_112.nii.gz'
|
|
22
|
+
mri[0]['fn_mri_DTI_rev'] = subject_folder + f'/mri/0/original/nifti/dti/8_HB4_diff_AP1_slice2.nii.gz'
|
|
23
|
+
mri[0]['fn_mri_DTI_bvec'] = subject_folder + f'/mri/0/original/nifti/dti/7_HB4_diff_64dir_PA0_112.bvec'
|
|
24
|
+
mri[0]['fn_mri_DTI_bval'] = subject_folder + f'/mri/0/original/nifti/dti/7_HB4_diff_64dir_PA0_112.bval'
|
|
25
|
+
mri[0]['dti_readout_time'] = '0.08214'
|
|
26
|
+
mri[0]['dti_phase_direction'] = 'y'
|
|
27
|
+
|
|
28
|
+
# mesh information
|
|
29
|
+
###########################################################################################################
|
|
30
|
+
mesh = {'charm_refm1_sm': dict(), 'headreco': dict(), 'headreco_refined_m1': dict()}
|
|
31
|
+
|
|
32
|
+
mesh['charm_refm1_sm']['info'] = 'charm --v 1.0 (simnibs 4.0 beta)'
|
|
33
|
+
mesh['charm_refm1_sm']['approach'] = 'charm'
|
|
34
|
+
mesh['charm_refm1_sm']['mesh_folder'] = os.path.join(subject_folder, 'testsub/mesh', 'charm_refm1_sm')
|
|
35
|
+
mesh['charm_refm1_sm']['vertex_density'] = None
|
|
36
|
+
mesh['charm_refm1_sm']['fn_mesh_msh'] = os.path.join(mesh['charm_refm1_sm']['mesh_folder'], f'm2m_{subject_id}',
|
|
37
|
+
f'{subject_id}.msh')
|
|
38
|
+
mesh['charm_refm1_sm']['fn_mesh_hdf5'] = os.path.join(mesh['charm_refm1_sm']['mesh_folder'], f'm2m_{subject_id}',
|
|
39
|
+
f'{subject_id}.hdf5')
|
|
40
|
+
mesh['charm_refm1_sm']['fn_tensor_vn'] = f'm2m_{subject_id}/DTI_coregT1_tensor.nii.gz'
|
|
41
|
+
mesh['charm_refm1_sm']['mri_idx'] = 0
|
|
42
|
+
mesh['charm_refm1_sm']['fn_mri_conform'] = f"m2m_{subject_id}/T1.nii.gz"
|
|
43
|
+
|
|
44
|
+
mesh['charm_refm1_sm']['fn_lh_wm'] = None
|
|
45
|
+
mesh['charm_refm1_sm']['fn_rh_wm'] = None
|
|
46
|
+
mesh['charm_refm1_sm']['fn_lh_gm'] = None
|
|
47
|
+
mesh['charm_refm1_sm']['fn_rh_gm'] = None
|
|
48
|
+
mesh['charm_refm1_sm']['fn_lh_gm_curv'] = None
|
|
49
|
+
mesh['charm_refm1_sm']['fn_rh_gm_curv'] = None
|
|
50
|
+
mesh['charm_refm1_sm']['fn_lh_midlayer'] = f'm2m_{subject_id}/surfaces/lh.central.gii'
|
|
51
|
+
mesh['charm_refm1_sm']['fn_rh_midlayer'] = f'm2m_{subject_id}/surfaces/rh.central.gii'
|
|
52
|
+
mesh['charm_refm1_sm']['smooth_skin'] = .8
|
|
53
|
+
mesh['charm_refm1_sm']['refinement_roi'] = 'midlayer_m1s1pmd'
|
|
54
|
+
mesh['charm_refm1_sm']['refinemement_element_size'] = 1
|
|
55
|
+
|
|
56
|
+
mesh['headreco']['info'] = 'headreco --v 1.0 (simnibs 3.1)'
|
|
57
|
+
mesh['headreco']['approach'] = 'headreco'
|
|
58
|
+
mesh['headreco']['mesh_folder'] = os.path.join(subject_folder, 'testsub/mesh', 'headreco')
|
|
59
|
+
mesh['headreco']['vertex_density'] = 1.0
|
|
60
|
+
mesh['headreco']['fn_mesh_msh'] = os.path.join(mesh['headreco']['mesh_folder'], f'{subject_id}.msh')
|
|
61
|
+
mesh['headreco']['fn_mesh_hdf5'] = os.path.join(mesh['headreco']['mesh_folder'], f'{subject_id}.hdf5')
|
|
62
|
+
mesh['headreco']['fn_tensor_vn'] = f'd2c_{subject_id}_PA/CTI_vn_tensor.nii'
|
|
63
|
+
mesh['headreco']['mri_idx'] = 0
|
|
64
|
+
mesh['headreco']['fn_lh_wm'] = None
|
|
65
|
+
mesh['headreco']['fn_rh_wm'] = None
|
|
66
|
+
mesh['headreco']['fn_lh_gm'] = None
|
|
67
|
+
mesh['headreco']['fn_rh_gm'] = None
|
|
68
|
+
mesh['headreco']['fn_lh_gm_curv'] = None
|
|
69
|
+
mesh['headreco']['fn_rh_gm_curv'] = None
|
|
70
|
+
mesh['headreco']['fn_lh_midlayer'] = f'fs_{subject_id}/surf/lh.central'
|
|
71
|
+
mesh['headreco']['fn_rh_midlayer'] = f'fs_{subject_id}/surf/rh.central'
|
|
72
|
+
|
|
73
|
+
mesh['headreco_refined_m1']['info'] = 'headreco --v 1.0 (simnibs 3.1)'
|
|
74
|
+
mesh['headreco_refined_m1']['approach'] = 'headreco'
|
|
75
|
+
mesh['headreco_refined_m1']['mesh_folder'] = os.path.join(subject_folder, 'testsub/mesh', 'headreco_refined_m1')
|
|
76
|
+
mesh['headreco_refined_m1']['vertex_density'] = 1.0
|
|
77
|
+
mesh['headreco_refined_m1']['center'] = [-41.33, -49.37, 73.78]
|
|
78
|
+
mesh['headreco_refined_m1']['radius'] = 35
|
|
79
|
+
mesh['headreco_refined_m1']['element_size'] = 0.4
|
|
80
|
+
mesh['headreco_refined_m1']['refine_domains'] = ["wm", "gm", "csf"]
|
|
81
|
+
mesh['headreco_refined_m1']['fn_mesh_msh'] = os.path.join(mesh['headreco_refined_m1']['mesh_folder'],
|
|
82
|
+
f"{subject_id}.msh")
|
|
83
|
+
mesh['headreco_refined_m1']['fn_mesh_hdf5'] = os.path.join(mesh['headreco_refined_m1']['mesh_folder'],
|
|
84
|
+
f"{subject_id}.hdf5")
|
|
85
|
+
mesh['headreco_refined_m1']['fn_tensor_vn'] = f"d2c_{subject_id}/dti_results_T1space/DTI_conf_tensor.nii.gz"
|
|
86
|
+
mesh['headreco_refined_m1']['mri_idx'] = 0
|
|
87
|
+
mesh['headreco_refined_m1']['fn_mri_conform'] = f"{subject_id}_T1fs_conform.nii.gz"
|
|
88
|
+
mesh['headreco_refined_m1']['smooth_domains'] = ['skin']
|
|
89
|
+
|
|
90
|
+
mesh['headreco_refined_m1']['fn_lh_wm'] = None
|
|
91
|
+
mesh['headreco_refined_m1']['fn_rh_wm'] = None
|
|
92
|
+
mesh['headreco_refined_m1']['fn_lh_gm'] = None
|
|
93
|
+
mesh['headreco_refined_m1']['fn_rh_gm'] = None
|
|
94
|
+
mesh['headreco_refined_m1']['fn_lh_gm_curv'] = None
|
|
95
|
+
mesh['headreco_refined_m1']['fn_rh_gm_curv'] = None
|
|
96
|
+
mesh['headreco_refined_m1']['fn_lh_midlayer'] = f"fs_{subject_id}/surf/lh.central"
|
|
97
|
+
mesh['headreco_refined_m1']['fn_rh_midlayer'] = f"fs_{subject_id}/surf/rh.central"
|
|
98
|
+
|
|
99
|
+
# roi information (first index: mesh, second index: roi)
|
|
100
|
+
###########################################################################################################
|
|
101
|
+
roi = {'headreco': {'midlayer_lh_rh': dict(), 'midlayer_m1s1pmd': dict()},
|
|
102
|
+
'headreco_refined_m1': {'midlayer_lh_rh': dict(), 'midlayer_m1s1pmd': dict(),
|
|
103
|
+
'midlayer_m1s1pmd_refined': dict()},
|
|
104
|
+
'charm_refm1_sm': {'midlayer_lh_rh': dict(), 'midlayer_m1s1pmd': dict()}}
|
|
105
|
+
|
|
106
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['type'] = 'surface'
|
|
107
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['info'] = 'freesurfer lh + rh whole brain midlayer'
|
|
108
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['gm_surf_fname'] = [mesh['charm_refm1_sm']['fn_lh_gm'],
|
|
109
|
+
mesh['charm_refm1_sm']['fn_rh_gm']]
|
|
110
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['wm_surf_fname'] = [mesh['charm_refm1_sm']['fn_lh_wm'],
|
|
111
|
+
mesh['charm_refm1_sm']['fn_rh_wm']]
|
|
112
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['midlayer_surf_fname'] = [mesh['charm_refm1_sm']['fn_lh_midlayer'],
|
|
113
|
+
mesh['charm_refm1_sm']['fn_rh_midlayer']]
|
|
114
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['delta'] = 0.5
|
|
115
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['refine'] = False
|
|
116
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['X_ROI'] = None
|
|
117
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['Y_ROI'] = None
|
|
118
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['Z_ROI'] = None
|
|
119
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['layer'] = 3
|
|
120
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['fn_mask'] = None
|
|
121
|
+
roi['charm_refm1_sm']['midlayer_lh_rh']['fn_mask_avg'] = None
|
|
122
|
+
|
|
123
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['type'] = 'surface'
|
|
124
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['info'] = 'freesurfer PMd, M1 and somatosensory cortex'
|
|
125
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['gm_surf_fname'] = mesh['charm_refm1_sm']['fn_lh_gm']
|
|
126
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['wm_surf_fname'] = mesh['charm_refm1_sm']['fn_lh_wm']
|
|
127
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['midlayer_surf_fname'] = mesh['charm_refm1_sm']['fn_lh_midlayer']
|
|
128
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['delta'] = 0.5
|
|
129
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['refine'] = False
|
|
130
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['X_ROI'] = None
|
|
131
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['Y_ROI'] = None
|
|
132
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['Z_ROI'] = None
|
|
133
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['layer'] = 3
|
|
134
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['fn_mask'] = f"roi/midlayer_m1s1pmd/mask_{subject_id}m1pmdss.mgh"
|
|
135
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['fn_mask_avg'] = '/lefthandknob_M1S1PMd.overlay'
|
|
136
|
+
roi['charm_refm1_sm']['midlayer_m1s1pmd']['hemisphere'] = "lh"
|
|
137
|
+
|
|
138
|
+
roi['headreco']['midlayer_lh_rh']['type'] = 'surface'
|
|
139
|
+
roi['headreco']['midlayer_lh_rh']['info'] = 'freesurfer lh + rh whole brain midlayer'
|
|
140
|
+
roi['headreco']['midlayer_lh_rh']['gm_surf_fname'] = [mesh['headreco']['fn_lh_gm'], mesh['headreco']['fn_rh_gm']]
|
|
141
|
+
roi['headreco']['midlayer_lh_rh']['wm_surf_fname'] = [mesh['headreco']['fn_lh_wm'], mesh['headreco']['fn_rh_wm']]
|
|
142
|
+
roi['headreco']['midlayer_lh_rh']['midlayer_surf_fname'] = [mesh['headreco']['fn_lh_midlayer'],
|
|
143
|
+
mesh['headreco']['fn_rh_midlayer']]
|
|
144
|
+
roi['headreco']['midlayer_lh_rh']['delta'] = 0.5
|
|
145
|
+
roi['headreco']['midlayer_lh_rh']['refine'] = False
|
|
146
|
+
roi['headreco']['midlayer_lh_rh']['X_ROI'] = None
|
|
147
|
+
roi['headreco']['midlayer_lh_rh']['Y_ROI'] = None
|
|
148
|
+
roi['headreco']['midlayer_lh_rh']['Z_ROI'] = None
|
|
149
|
+
roi['headreco']['midlayer_lh_rh']['layer'] = 3
|
|
150
|
+
roi['headreco']['midlayer_lh_rh']['fn_mask'] = None
|
|
151
|
+
roi['headreco']['midlayer_lh_rh']['fn_mask_avg'] = None
|
|
152
|
+
|
|
153
|
+
roi['headreco']['midlayer_m1s1pmd']['type'] = 'surface'
|
|
154
|
+
roi['headreco']['midlayer_m1s1pmd']['info'] = 'freesurfer PMd, M1 and somatosensory cortex'
|
|
155
|
+
roi['headreco']['midlayer_m1s1pmd']['gm_surf_fname'] = mesh['headreco']['fn_lh_gm']
|
|
156
|
+
roi['headreco']['midlayer_m1s1pmd']['wm_surf_fname'] = mesh['headreco']['fn_lh_wm']
|
|
157
|
+
roi['headreco']['midlayer_m1s1pmd']['midlayer_surf_fname'] = mesh['headreco']['fn_lh_midlayer']
|
|
158
|
+
roi['headreco']['midlayer_m1s1pmd']['delta'] = 0.5
|
|
159
|
+
roi['headreco']['midlayer_m1s1pmd']['refine'] = False
|
|
160
|
+
roi['headreco']['midlayer_m1s1pmd']['X_ROI'] = None
|
|
161
|
+
roi['headreco']['midlayer_m1s1pmd']['Y_ROI'] = None
|
|
162
|
+
roi['headreco']['midlayer_m1s1pmd']['Z_ROI'] = None
|
|
163
|
+
roi['headreco']['midlayer_m1s1pmd']['layer'] = 3
|
|
164
|
+
roi['headreco']['midlayer_m1s1pmd']['fn_mask'] = f"roi/midlayer_m1s1pmd/mask_{subject_id}m1pmdss.mgh"
|
|
165
|
+
roi['headreco']['midlayer_m1s1pmd']['fn_mask_avg'] = '/masks/lefthandknob_M1S1PMd.overlay'
|
|
166
|
+
roi['headreco']['midlayer_m1s1pmd']['hemisphere'] = "lh"
|
|
167
|
+
|
|
168
|
+
roi_id = 'midlayer_lh_rh'
|
|
169
|
+
roi['headreco_refined_m1'][roi_id]['type'] = 'surface'
|
|
170
|
+
roi['headreco_refined_m1'][roi_id]['info'] = 'freesurfer lh + rh whole brain midlayer'
|
|
171
|
+
roi['headreco_refined_m1'][roi_id]['gm_surf_fname'] = [mesh['headreco_refined_m1']['fn_lh_gm'],
|
|
172
|
+
mesh['headreco_refined_m1']['fn_rh_gm']]
|
|
173
|
+
roi['headreco_refined_m1'][roi_id]['wm_surf_fname'] = [mesh['headreco_refined_m1']['fn_lh_wm'],
|
|
174
|
+
mesh['headreco_refined_m1']['fn_rh_wm']]
|
|
175
|
+
roi['headreco_refined_m1'][roi_id]['midlayer_surf_fname'] = [mesh['headreco_refined_m1']['fn_lh_midlayer'],
|
|
176
|
+
mesh['headreco_refined_m1']['fn_rh_midlayer']]
|
|
177
|
+
roi['headreco_refined_m1'][roi_id]['refine'] = False
|
|
178
|
+
roi['headreco_refined_m1'][roi_id]['delta'] = 0.5
|
|
179
|
+
roi['headreco_refined_m1'][roi_id]['X_ROI'] = None
|
|
180
|
+
roi['headreco_refined_m1'][roi_id]['Y_ROI'] = None
|
|
181
|
+
roi['headreco_refined_m1'][roi_id]['Z_ROI'] = None
|
|
182
|
+
roi['headreco_refined_m1'][roi_id]['layer'] = 3
|
|
183
|
+
roi['headreco_refined_m1'][roi_id]['fn_mask'] = None
|
|
184
|
+
roi['headreco_refined_m1'][roi_id]['fn_mask_avg'] = None
|
|
185
|
+
|
|
186
|
+
roi_id = 'midlayer_m1s1pmd'
|
|
187
|
+
roi['headreco_refined_m1'][roi_id]['type'] = 'surface'
|
|
188
|
+
roi['headreco_refined_m1'][roi_id]['info'] = 'freesurfer PMd, M1 and somatosensory cortex'
|
|
189
|
+
roi['headreco_refined_m1'][roi_id]['gm_surf_fname'] = mesh['headreco_refined_m1']['fn_lh_gm']
|
|
190
|
+
roi['headreco_refined_m1'][roi_id]['wm_surf_fname'] = mesh['headreco_refined_m1']['fn_lh_wm']
|
|
191
|
+
roi['headreco_refined_m1'][roi_id]['midlayer_surf_fname'] = mesh['headreco_refined_m1']['fn_lh_midlayer']
|
|
192
|
+
roi['headreco_refined_m1'][roi_id]['refine'] = False
|
|
193
|
+
roi['headreco_refined_m1'][roi_id]['delta'] = 0.5
|
|
194
|
+
roi['headreco_refined_m1'][roi_id]['X_ROI'] = None
|
|
195
|
+
roi['headreco_refined_m1'][roi_id]['Y_ROI'] = None
|
|
196
|
+
roi['headreco_refined_m1'][roi_id]['Z_ROI'] = None
|
|
197
|
+
roi['headreco_refined_m1'][roi_id]['layer'] = 3
|
|
198
|
+
roi['headreco_refined_m1'][roi_id]['fn_mask'] = f"roi/midlayer_m1s1pmd/mask_{subject_id}m1pmdss.mgh"
|
|
199
|
+
roi['headreco_refined_m1'][roi_id]['fn_mask_avg'] = '//masks/lefthandknob_M1S1PMd.overlay'
|
|
200
|
+
roi['headreco_refined_m1'][roi_id]['hemisphere'] = "lh"
|
|
201
|
+
|
|
202
|
+
roi_id = 'midlayer_m1s1pmd_refined'
|
|
203
|
+
roi['headreco_refined_m1'][roi_id]['type'] = 'surface'
|
|
204
|
+
roi['headreco_refined_m1'][roi_id]['info'] = 'freesurfer PMd, M1 and somatosensory cortex'
|
|
205
|
+
roi['headreco_refined_m1'][roi_id]['gm_surf_fname'] = mesh['headreco_refined_m1']['fn_lh_gm']
|
|
206
|
+
roi['headreco_refined_m1'][roi_id]['wm_surf_fname'] = mesh['headreco_refined_m1']['fn_lh_wm']
|
|
207
|
+
roi['headreco_refined_m1'][roi_id]['midlayer_surf_fname'] = mesh['headreco_refined_m1']['fn_lh_midlayer']
|
|
208
|
+
roi['headreco_refined_m1'][roi_id]['refine'] = True
|
|
209
|
+
roi['headreco_refined_m1'][roi_id]['delta'] = 0.5
|
|
210
|
+
roi['headreco_refined_m1'][roi_id]['X_ROI'] = None
|
|
211
|
+
roi['headreco_refined_m1'][roi_id]['Y_ROI'] = None
|
|
212
|
+
roi['headreco_refined_m1'][roi_id]['Z_ROI'] = None
|
|
213
|
+
roi['headreco_refined_m1'][roi_id]['layer'] = 3
|
|
214
|
+
roi['headreco_refined_m1'][roi_id]['fn_mask'] = f"roi/midlayer_m1s1pmd/mask_{subject_id}m1pmdss.mgh"
|
|
215
|
+
roi['headreco_refined_m1'][roi_id]['fn_mask_avg'] = '//masks/lefthandknob_M1S1PMd.overlay'
|
|
216
|
+
roi['headreco_refined_m1'][roi_id]['hemisphere'] = "lh"
|
|
217
|
+
|
|
218
|
+
# experiment information
|
|
219
|
+
###########################################################################################################
|
|
220
|
+
exp = {'TMS_localite': dict(), 'TMS_ant': dict(), 'TMS_brainsight': dict()}
|
|
221
|
+
|
|
222
|
+
exp['TMS_localite']['info'] = ['TMS-MEP template Localite (MPI)']
|
|
223
|
+
exp['TMS_localite']['date'] = ['XX/XX/20XX']
|
|
224
|
+
exp['TMS_localite']['nnav_system'] = 'Localite'
|
|
225
|
+
exp['TMS_localite']['fn_tms_nav'] = [[subject_folder + '...xml', subject_folder + '...xml']]
|
|
226
|
+
exp['TMS_localite']['fn_data'] = [[subject_folder + '/exp/0/mep/...cfs']]
|
|
227
|
+
exp['TMS_localite']['fn_intensity'] = None
|
|
228
|
+
exp['TMS_localite']['mep_onsets'] = [[0]]
|
|
229
|
+
exp['TMS_localite']['fn_exp_csv'] = [subject_folder + '/exp/0/experiment.csv']
|
|
230
|
+
exp['TMS_localite']['fn_exp_hdf5'] = [subject_folder + '/exp/0/experiment.hdf5']
|
|
231
|
+
exp['TMS_localite']['fn_coil'] = [['.../MagStim_Alpha_Coil_70mm_Fig8.nii.gz']]
|
|
232
|
+
exp['TMS_localite']['fn_mri_nii'] = [[subject_folder + '/exp/0/..._conform.nii']]
|
|
233
|
+
exp['TMS_localite']['cond'] = [['']]
|
|
234
|
+
exp['TMS_localite']['tms_pulse_time'] = None
|
|
235
|
+
exp['TMS_localite']['experimenter'] = ''
|
|
236
|
+
exp['TMS_localite']['mep_fit_info'] = ['']
|
|
237
|
+
exp['TMS_localite']['incidents'] = ['']
|
|
238
|
+
exp['TMS_localite']['postproc'] = [dict()]
|
|
239
|
+
exp['TMS_localite']['postproc'][0]['info'] = ' '
|
|
240
|
+
exp['TMS_localite']['postproc'][0]['cmd'] = ' '
|
|
241
|
+
|
|
242
|
+
exp['TMS_ant']['info'] = ['TMS-MEP-EEG template (ANT)']
|
|
243
|
+
exp['TMS_ant']['date'] = ['XX/XX/20XX']
|
|
244
|
+
exp['TMS_ant']['nnav_system'] = 'Visor'
|
|
245
|
+
exp['TMS_ant']['fn_data'] = [[subject_folder + '/exp/2/...cnt']]
|
|
246
|
+
exp['TMS_ant']['fn_exp_hdf5'] = [subject_folder + '/exp/2/experiment.hdf5']
|
|
247
|
+
exp['TMS_ant']['fn_coil'] = [['.../MagStim_Alpha_Coil_70mm_Fig8.nii.gz']]
|
|
248
|
+
exp['TMS_ant']['fn_mri_nii'] = [[subject_folder + '/exp/2/..._conform.nii']]
|
|
249
|
+
exp['TMS_ant']['fn_visor_cnt'] = [subject_folder + '/exp/2/...pos.cnt']
|
|
250
|
+
exp['TMS_ant']['fn_visor_calibration'] = [subject_folder + '/exp/2/...calibration.xml']
|
|
251
|
+
exp['TMS_ant']['fn_eeg_cnt'] = [subject_folder + '/exp/2/eeg/...cnt']
|
|
252
|
+
exp['TMS_ant']['eeg_channels'] = ['all']
|
|
253
|
+
exp['TMS_ant']['fn_emg_cnt'] = [subject_folder + '/exp/2/emg/...cnt']
|
|
254
|
+
exp['TMS_ant']['emg_channels'] = [0]
|
|
255
|
+
exp['TMS_ant']['emg_max_duration'] = [10]
|
|
256
|
+
exp['TMS_ant']['eeg_max_duration'] = [10]
|
|
257
|
+
exp['TMS_ant']['emg_trigger_value'] = ['4']
|
|
258
|
+
exp['TMS_ant']['eeg_trigger_value'] = ['1']
|
|
259
|
+
exp['TMS_ant']['cond'] = [['M1_random']]
|
|
260
|
+
exp['TMS_ant']['tms_pulse_time'] = None
|
|
261
|
+
exp['TMS_ant']['experimenter'] = ' '
|
|
262
|
+
exp['TMS_ant']['mep_fit_info'] = [' ']
|
|
263
|
+
exp['TMS_ant']['incidents'] = [' ']
|
|
264
|
+
exp['TMS_ant']['fiducal_corr'] = [[0, 0, 0]] # x,y,z in mm
|
|
265
|
+
|
|
266
|
+
exp['TMS_brainsight']['info'] = ['TMS-MEP-EEG template (Brainsight)']
|
|
267
|
+
exp['TMS_brainsight']['date'] = ['09/03/20222']
|
|
268
|
+
exp['TMS_brainsight']['nnav_system'] = 'Brainsight'
|
|
269
|
+
exp['TMS_brainsight']['fn_data'] = [subject_folder + '/Data_testsub.txt']
|
|
270
|
+
exp['TMS_brainsight']['fn_exp_hdf5'] = [subject_folder + '/exp/random/experiment.hdf5']
|
|
271
|
+
exp['TMS_brainsight']['fn_coil'] = [['.../Magstim_D70_AFC_force_sensor.ccd.nii.gz']]
|
|
272
|
+
exp['TMS_brainsight']['fn_mri_nii'] = [[subject_folder + '/exp/random/testsub_T1.nii.gz']]
|
|
273
|
+
exp['TMS_brainsight']['cond'] = [['M1_random']]
|
|
274
|
+
exp['TMS_brainsight']['tms_pulse_time'] = None
|
|
275
|
+
exp['TMS_brainsight']['experimenter'] = 'Zijian'
|
|
276
|
+
exp['TMS_brainsight']['mep_fit_info'] = [' ']
|
|
277
|
+
exp['TMS_brainsight']['incidents'] = [' ']
|
|
278
|
+
exp['TMS_brainsight']['fiducal_corr'] = [[0, 0, 0]] # x,y,z in mm
|
|
279
|
+
|
|
280
|
+
# add plot settings
|
|
281
|
+
###########################################################################################################
|
|
282
|
+
ps = []
|
|
283
|
+
|
|
284
|
+
ps.append(pynibs.create_plot_settings_dict(plotfunction_type='surface_vector_plot'))
|
|
285
|
+
ps[0]['info'] = ' '
|
|
286
|
+
ps[0]['plot_function'] = 'surface_vector_plot'
|
|
287
|
+
ps[0]['fname_in'] = '..._data.xdmf'
|
|
288
|
+
ps[0]['fname_png'] = '...png'
|
|
289
|
+
ps[0]['png_resolution'] = 1.0
|
|
290
|
+
ps[0]['quantity'] = [' ']
|
|
291
|
+
ps[0]['vlabels'] = None
|
|
292
|
+
ps[0]['vscales'] = None
|
|
293
|
+
ps[0]['datarange'] = [None, None]
|
|
294
|
+
ps[0]['domain_label'] = 'tissue_type'
|
|
295
|
+
ps[0]['domain_IDs'] = 0
|
|
296
|
+
ps[0]['colorbar_label'] = ' '
|
|
297
|
+
ps[0]['colorbar_position'] = [0.45, -0.05]
|
|
298
|
+
ps[0]['colorbar_orientation'] = 'Horizontal'
|
|
299
|
+
ps[0]['colorbar_aspectratio'] = 20
|
|
300
|
+
ps[0]['colorbar_titlefontsize'] = 12
|
|
301
|
+
ps[0]['colorbar_labelfontsize'] = 12
|
|
302
|
+
ps[0]['colorbar_labelformat'] = '%-#6.1f'
|
|
303
|
+
ps[0]['colorbar_numberoflabels'] = 5
|
|
304
|
+
ps[0]['colorbar_labelcolor'] = [0, 0, 0]
|
|
305
|
+
ps[0]['view'] = [[-332.040630013204, -16.8948837495393, 256.721941018442],
|
|
306
|
+
[-35.3111635316966, -13.6999528376981, 36.4196465112876],
|
|
307
|
+
[0.588834647614276, -0.167617710066906, 0.790682022712606],
|
|
308
|
+
[30, 0, 0]]
|
|
309
|
+
ps[0]['interpolate'] = True
|
|
310
|
+
ps[0]['edges'] = False
|
|
311
|
+
ps[0]['axes'] = False
|
|
312
|
+
ps[0]['colormap'] = 'Rainbow Blended White'
|
|
313
|
+
ps[0]['opacitymap'] = None
|
|
314
|
+
ps[0]['vscale_mode'] = ['off']
|
|
315
|
+
ps[0]['vector_mode'] = {'Every Nth Point': 10}
|
|
316
|
+
ps[0]['vcolor'] = None
|
|
317
|
+
ps[0]['background_color'] = np.array([1, 1, 1])
|
|
318
|
+
ps[0]['viewsize'] = np.array([1000, 1000])
|
|
319
|
+
|
|
320
|
+
# save subject information in .hdf5 file
|
|
321
|
+
###########################################################################################################
|
|
322
|
+
pynibs.save_subject_hdf5(fname=fn_subject_obj,
|
|
323
|
+
mri_dict=mri,
|
|
324
|
+
mesh_dict=mesh,
|
|
325
|
+
roi_dict=roi,
|
|
326
|
+
exp_dict=exp,
|
|
327
|
+
ps_dict=ps,
|
|
328
|
+
subject_id=subject_id,
|
|
329
|
+
subject_folder=subject_folder
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
print(f'Created subject .hdf5 file: {fn_subject_obj}')
|
|
Binary file
|
|
Binary file
|