vbi 0.1.3__tar.gz → 0.2.1__tar.gz

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 (194) hide show
  1. vbi-0.2.1/CHANGELOG.md +112 -0
  2. vbi-0.2.1/Dockerfile +51 -0
  3. {vbi-0.1.3/vbi.egg-info → vbi-0.2.1}/PKG-INFO +30 -11
  4. {vbi-0.1.3 → vbi-0.2.1}/README.md +28 -8
  5. {vbi-0.1.3 → vbi-0.2.1}/docs/conf.py +1 -1
  6. vbi-0.2.1/docs/examples/jansen_rit_sde_numba.ipynb +587 -0
  7. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/mpr_sde_cpp.ipynb +6 -1
  8. vbi-0.2.1/docs/examples/mpr_sde_numba.ipynb +1020 -0
  9. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/mpr_tvbk.ipynb +4 -1
  10. vbi-0.2.1/docs/examples/vep_sde_numba.ipynb +573 -0
  11. vbi-0.2.1/docs/examples/wilson_cowan_cupy.ipynb +457 -0
  12. vbi-0.2.1/docs/examples/wilson_cowan_sde_numba.ipynb +1004 -0
  13. vbi-0.2.1/docs/examples/ww_full_sde_cupy.ipynb +472 -0
  14. vbi-0.2.1/docs/examples/ww_full_sde_numba.ipynb +520 -0
  15. {vbi-0.1.3 → vbi-0.2.1}/docs/index.rst +13 -0
  16. {vbi-0.1.3 → vbi-0.2.1}/docs/models.rst +156 -13
  17. {vbi-0.1.3 → vbi-0.2.1}/pyproject.toml +9 -3
  18. {vbi-0.1.3 → vbi-0.2.1}/setup.py +23 -15
  19. {vbi-0.1.3 → vbi-0.2.1}/vbi/_version.py +1 -1
  20. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/features.json +4 -1
  21. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/features.py +10 -4
  22. {vbi-0.1.3 → vbi-0.2.1}/vbi/inference.py +50 -22
  23. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sde.hpp +5 -6
  24. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sde_wrap.cxx +28 -28
  25. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/jansen_rit.py +2 -9
  26. vbi-0.2.1/vbi/models/cupy/bold.py +228 -0
  27. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cupy/jansen_rit.py +1 -1
  28. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cupy/km.py +62 -34
  29. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cupy/mpr.py +24 -4
  30. vbi-0.2.1/vbi/models/cupy/utils.py +345 -0
  31. vbi-0.2.1/vbi/models/cupy/wilson_cowan.py +317 -0
  32. vbi-0.2.1/vbi/models/cupy/ww.py +342 -0
  33. vbi-0.2.1/vbi/models/numba/__init__.py +4 -0
  34. vbi-0.2.1/vbi/models/numba/jansen_rit.py +532 -0
  35. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/numba/mpr.py +8 -0
  36. vbi-0.2.1/vbi/models/numba/vep.py +327 -0
  37. vbi-0.2.1/vbi/models/numba/wilson_cowan.py +443 -0
  38. vbi-0.2.1/vbi/models/numba/ww.py +564 -0
  39. {vbi-0.1.3 → vbi-0.2.1/vbi.egg-info}/PKG-INFO +30 -11
  40. {vbi-0.1.3 → vbi-0.2.1}/vbi.egg-info/SOURCES.txt +14 -1
  41. vbi-0.1.3/docs/examples/mpr_sde_numba.ipynb +0 -264
  42. vbi-0.1.3/vbi/models/cupy/bold.py +0 -111
  43. vbi-0.1.3/vbi/models/cupy/utils.py +0 -184
  44. vbi-0.1.3/vbi/models/numba/_ww_EI.py +0 -444
  45. vbi-0.1.3/vbi/tests/__init__.py +0 -0
  46. {vbi-0.1.3 → vbi-0.2.1}/.github/workflows/docker-image.yml +0 -0
  47. {vbi-0.1.3 → vbi-0.2.1}/.github/workflows/tests.yml +0 -0
  48. {vbi-0.1.3 → vbi-0.2.1}/.gitignore +0 -0
  49. {vbi-0.1.3 → vbi-0.2.1}/.readthedocs.yaml +0 -0
  50. {vbi-0.1.3 → vbi-0.2.1}/CONTRIBUTING.md +0 -0
  51. {vbi-0.1.3 → vbi-0.2.1}/LICENSE +0 -0
  52. {vbi-0.1.3 → vbi-0.2.1}/MANIFEST.in +0 -0
  53. {vbi-0.1.3 → vbi-0.2.1}/docs/API.rst +0 -0
  54. {vbi-0.1.3 → vbi-0.2.1}/docs/Makefile +0 -0
  55. {vbi-0.1.3 → vbi-0.2.1}/docs/_static/Fig1.png +0 -0
  56. {vbi-0.1.3 → vbi-0.2.1}/docs/_static/custom.css +0 -0
  57. {vbi-0.1.3 → vbi-0.2.1}/docs/_static/vbi_flowchart.png +0 -0
  58. {vbi-0.1.3 → vbi-0.2.1}/docs/_static/vbi_log.png +0 -0
  59. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/.gitattributes +0 -0
  60. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/.ipynb_checkpoints/intro-checkpoint.ipynb +0 -0
  61. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/__pycache__/helpers.cpython-310.pyc +0 -0
  62. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/centers.txt +0 -0
  63. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/centres.txt +0 -0
  64. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/cortical.txt +0 -0
  65. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/tract_lengths.txt +0 -0
  66. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/weights.txt +0 -0
  67. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/weights1.txt +0 -0
  68. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/data/weights_68.txt +0 -0
  69. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/do_cpp.ipynb +0 -0
  70. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/do_nb.ipynb +0 -0
  71. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/ghb_sde_cupy.ipynb +0 -0
  72. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/helpers.py +0 -0
  73. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/intro.ipynb +0 -0
  74. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/intro_feature.ipynb +0 -0
  75. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/jansen_rit_sde_cpp.ipynb +0 -0
  76. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/jansen_rit_sde_cupy.ipynb +0 -0
  77. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/mpr_sde_cupy.ipynb +0 -0
  78. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/my_features.json +0 -0
  79. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/my_features.py +0 -0
  80. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/output/damp_oscillator_ts.jpeg +0 -0
  81. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/output/stat_vec.pt +0 -0
  82. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/output/theta.pt +0 -0
  83. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/output/vep/posterior.pkl +0 -0
  84. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/output/vep84/posterior.pkl +0 -0
  85. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/sbi-logs/NPE_C/2025-03-24T17_33_52.754987/events.out.tfevents.1742834032.ziaee.319710.0 +0 -0
  86. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/vep_sde.ipynb +0 -0
  87. {vbi-0.1.3 → vbi-0.2.1}/docs/examples/ww_sde_torch_kong.ipynb +0 -0
  88. {vbi-0.1.3 → vbi-0.2.1}/docs/requirements.txt +0 -0
  89. {vbi-0.1.3 → vbi-0.2.1}/setup.cfg +0 -0
  90. {vbi-0.1.3 → vbi-0.2.1}/vbi/__init__.py +0 -0
  91. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/__init__.py +0 -0
  92. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_84/centers.txt +0 -0
  93. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_84/centres.txt +0 -0
  94. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_84/cortical.txt +0 -0
  95. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_84/tract_lengths.txt +0 -0
  96. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_84/weights.txt +0 -0
  97. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_88/Aud_88.txt +0 -0
  98. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_88/Bold.npz +0 -0
  99. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_88/Labels.txt +0 -0
  100. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_88/Region_labels.txt +0 -0
  101. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_88/tract_lengths.txt +0 -0
  102. {vbi-0.1.3 → vbi-0.2.1}/vbi/dataset/connectivity_88/weights.txt +0 -0
  103. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/__init__.py +0 -0
  104. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/calc_features.py +0 -0
  105. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/features_settings.py +0 -0
  106. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/features_utils.py +0 -0
  107. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/infodynamics.jar +0 -0
  108. {vbi-0.1.3 → vbi-0.2.1}/vbi/feature_extraction/utility.py +0 -0
  109. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/__init__.py +0 -0
  110. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/__init__.py +0 -0
  111. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/__init__.py +0 -0
  112. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/__pycache__/mpr_sde.cpython-310.pyc +0 -0
  113. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_do.cpython-310-x86_64-linux-gnu.so +0 -0
  114. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_jr_sdde.cpython-310-x86_64-linux-gnu.so +0 -0
  115. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_jr_sde.cpython-310-x86_64-linux-gnu.so +0 -0
  116. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_km_sde.cpython-310-x86_64-linux-gnu.so +0 -0
  117. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_mpr_sde.cpython-310-x86_64-linux-gnu.so +0 -0
  118. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_vep.cpython-310-x86_64-linux-gnu.so +0 -0
  119. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/_wc_ode.cpython-310-x86_64-linux-gnu.so +0 -0
  120. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/bold.hpp +0 -0
  121. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/do.hpp +0 -0
  122. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/do.i +0 -0
  123. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/do.py +0 -0
  124. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/do_wrap.cxx +0 -0
  125. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sdde.hpp +0 -0
  126. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sdde.i +0 -0
  127. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sdde.py +0 -0
  128. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sdde_wrap.cxx +0 -0
  129. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sde.i +0 -0
  130. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/jr_sde.py +0 -0
  131. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/km_sde.hpp +0 -0
  132. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/km_sde.i +0 -0
  133. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/km_sde.py +0 -0
  134. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/km_sde_wrap.cxx +0 -0
  135. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/makefile +0 -0
  136. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/mpr_sde.hpp +0 -0
  137. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/mpr_sde.i +0 -0
  138. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/mpr_sde.py +0 -0
  139. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/mpr_sde_wrap.cxx +0 -0
  140. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/utility.hpp +0 -0
  141. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/vep.hpp +0 -0
  142. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/vep.i +0 -0
  143. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/vep.py +0 -0
  144. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/vep_wrap.cxx +0 -0
  145. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/wc_ode.hpp +0 -0
  146. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/wc_ode.i +0 -0
  147. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/wc_ode.py +0 -0
  148. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/_src/wc_ode_wrap.cxx +0 -0
  149. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/damp_oscillator.py +0 -0
  150. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/km.py +0 -0
  151. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/mpr.py +0 -0
  152. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/vep.py +0 -0
  153. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cpp/wc.py +0 -0
  154. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cupy/__init__.py +0 -0
  155. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cupy/ghb.py +0 -0
  156. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/cupy/mpr_modified_bold.py +0 -0
  157. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/numba/damp_oscillator.py +0 -0
  158. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/numba/ghb.py +0 -0
  159. {vbi-0.1.3/vbi/models/numba → vbi-0.2.1/vbi/models/pytorch}/__init__.py +0 -0
  160. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/default_parameters.npz +0 -0
  161. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/ROI_sim.mat +0 -0
  162. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fc_test.csv +0 -0
  163. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fc_train.csv +0 -0
  164. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fc_vali.csv +0 -0
  165. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fcd_test.mat +0 -0
  166. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fcd_test_high_window.mat +0 -0
  167. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fcd_test_low_window.mat +0 -0
  168. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fcd_train.mat +0 -0
  169. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/fcd_vali.mat +0 -0
  170. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/myelin.csv +0 -0
  171. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/rsfc_gradient.csv +0 -0
  172. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/run_label_testset.mat +0 -0
  173. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/sc_test.csv +0 -0
  174. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/sc_train.csv +0 -0
  175. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/input/sc_vali.csv +0 -0
  176. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/data/obs_kong0.npz +0 -0
  177. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/pytorch/ww_sde_kong.py +0 -0
  178. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/tvbk/__init__.py +0 -0
  179. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/tvbk/tvbk_wrapper.py +0 -0
  180. {vbi-0.1.3 → vbi-0.2.1}/vbi/models/tvbk/utils.py +0 -0
  181. {vbi-0.1.3/vbi/models/pytorch → vbi-0.2.1/vbi/papers}/__init__.py +0 -0
  182. {vbi-0.1.3 → vbi-0.2.1}/vbi/papers/pavlides_pcb_2015/pavlides.py +0 -0
  183. {vbi-0.1.3/vbi/papers → vbi-0.2.1/vbi/tests}/__init__.py +0 -0
  184. {vbi-0.1.3 → vbi-0.2.1}/vbi/tests/_test_mpr_nb.py +0 -0
  185. {vbi-0.1.3 → vbi-0.2.1}/vbi/tests/test_features.py +0 -0
  186. {vbi-0.1.3 → vbi-0.2.1}/vbi/tests/test_ghb_cupy.py +0 -0
  187. {vbi-0.1.3 → vbi-0.2.1}/vbi/tests/test_mpr_cupy.py +0 -0
  188. {vbi-0.1.3 → vbi-0.2.1}/vbi/tests/test_mpr_numba.py +0 -0
  189. {vbi-0.1.3 → vbi-0.2.1}/vbi/tests/test_suite.py +0 -0
  190. {vbi-0.1.3 → vbi-0.2.1}/vbi/utils.py +0 -0
  191. {vbi-0.1.3 → vbi-0.2.1}/vbi.egg-info/dependency_links.txt +0 -0
  192. {vbi-0.1.3 → vbi-0.2.1}/vbi.egg-info/requires.txt +0 -0
  193. {vbi-0.1.3 → vbi-0.2.1}/vbi.egg-info/top_level.txt +0 -0
  194. {vbi-0.1.3 → vbi-0.2.1}/vbi_log.png +0 -0
vbi-0.2.1/CHANGELOG.md ADDED
@@ -0,0 +1,112 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.2] - 2025-08-28
11
+
12
+ ### Added
13
+ - **New Models:**
14
+ - Implemented Wong-Wang model with Numba JIT compilation and simulation functionality
15
+ - Added Numba-based Jansen-Rit model with initial state setup and integration functionality
16
+ - Implemented Bold model with parameter management and BOLD step functionality
17
+ - Added Wilson-Cowan CuPy implementation and example notebook
18
+ - Added Wong-Wang full (EI) model with CuPy implementation
19
+
20
+ - **Feature Enhancements:**
21
+ - Added `__str__` method to JR_sde class for improved model parameter representation
22
+ - Added average parameter to `spectrum_moments` function for optional averaging of moments
23
+ - Enhanced `integrate` function to filter recorded data based on `t_cut`, with assertion for validity
24
+ - Added `dtype_convert` function and enhanced `prepare_vec_2d` for flexible input handling
25
+ - Added optional parameter 'k' to `fcd_stat` function for flexible window length calculation
26
+ - Added functions to check data location on CPU/GPU
27
+ - Enhanced parameter handling in KM_sde class
28
+ - Added SKIP_CPP environment variable to control C++ compilation during setup
29
+ - Added error handling for PCA transformation in `matrix_stat` function
30
+ - Allow customizable wavelet function in wavelet method (replaced ricker with morlet2)
31
+ - Added `allocate_memory` method in Bold class to accept dtype parameter
32
+
33
+ - **Documentation:**
34
+ - Updated installation instructions to include SKIP_CPP environment variable
35
+ - Added Colab links and enhanced example notebooks with additional markdown headers
36
+ - Updated installation instructions in README to include pip install options
37
+ - Added docstring for train method in Inference class with parameter descriptions
38
+ - Added new example directories for mpr_sde_cpp and wilson_cowan_cupy
39
+ - Enhanced Jansen-Rit model documentation and improved CSS styles
40
+ - Added custom CSS styles and updated documentation structure
41
+ - Updated VBI toolkit description and improved presentation
42
+
43
+ - **Infrastructure:**
44
+ - Added tvbk module integration with connectivity setup and MPR class implementation
45
+ - Added CONTRIBUTING.md for contribution guidelines
46
+ - Enhanced Docker support with NVIDIA CUDA base image and Python 3.10
47
+ - Added GitHub Actions workflow for publishing to PyPI
48
+ - Added Docker build badge and usage instructions
49
+
50
+ ### Changed
51
+ - **Version Updates:**
52
+ - Updated project version from 0.1.3 to 0.2 in both `_version.py` and `pyproject.toml`
53
+ - Refactored DO_cpp class to DO
54
+
55
+ - **Code Improvements:**
56
+ - Refactored Numba models and removed unused files
57
+ - Improved code formatting and style in Inference class methods
58
+ - Enhanced parameter handling in JR_sde and MPR_sde classes
59
+ - Updated buffer size calculation and streamlined data recording in WC_sde class
60
+ - Renamed `cupy/wilsoncowan.py` to `cupy/wilson_cowan.py` for naming compatibility
61
+
62
+ - **Build System:**
63
+ - Updated MANIFEST.in and setup.py to include additional data files and C++ extensions
64
+ - Cleaned up pyproject.toml by removing commented sections
65
+ - Updated Docker workflow and improved build process
66
+
67
+ ### Fixed
68
+ - Corrected weights array transposition in JR_sde class for proper data handling
69
+ - Removed unnecessary transpose operation on weights in MPR_sde class
70
+ - Updated noise_amp handling and added dependent parameter updates in MPR_sde class
71
+ - Restored dtype definition in MPR class initialization
72
+ - Updated import error messages to clarify C++ compilation or linking issues
73
+ - Extended r_period calculation and improved RV recording condition in MPR_sde class
74
+ - Fixed wavelet function imports and implementation
75
+
76
+ ### Removed
77
+ - Removed tvbk_ext module and associated imports
78
+ - Removed pre-commit configuration
79
+ - Cleaned up deprecated test files and unnecessary dependencies
80
+ - Removed outdated publish workflow steps from GitHub Actions
81
+
82
+ ## [0.1.3.3] - 2025-02-17
83
+
84
+ ### Changed
85
+ - Updated package_data in setup.py to include Python files in vbi.models.cpp._src directory
86
+
87
+ ## [0.1.3.2] - 2025-02-17
88
+
89
+ ### Added
90
+ - Updated wavelet functions to allow None as default for customizable wavelet function
91
+
92
+ ## [0.1.3.1] - 2025-02-17
93
+
94
+ ### Added
95
+ - Imported models module in vbi package initialization
96
+ - Implemented Bold class for balloon model and integrated with MPR_sde class
97
+
98
+ ### Changed
99
+ - Updated Python version in publish workflow to 3.10 for improved compatibility
100
+
101
+ ## [0.1.3] - 2025-02-17
102
+
103
+ ### Added
104
+ - Dynamic version retrieval implementation
105
+ - Enhanced documentation structure and API references
106
+
107
+ ### Changed
108
+ - Bumped version to 0.1.3
109
+
110
+ ---
111
+
112
+ **Note:** This changelog covers changes from version 0.1.3 to the current version 0.2. Earlier versions may have additional changes not documented here.
vbi-0.2.1/Dockerfile ADDED
@@ -0,0 +1,51 @@
1
+ FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu20.04
2
+
3
+ # Set environment to avoid interactive prompts
4
+ ENV DEBIAN_FRONTEND=noninteractive
5
+
6
+ # Install system dependencies
7
+ RUN apt-get update && apt-get install -y \
8
+ python3.10 \
9
+ python3-pip \
10
+ build-essential \
11
+ gcc \
12
+ g++ \
13
+ libatlas-base-dev \
14
+ libopenblas-dev \
15
+ libhdf5-dev \
16
+ swig \
17
+ tzdata \
18
+ && ln -s /usr/bin/python3 /usr/bin/python \
19
+ && rm -rf /var/lib/apt/lists/*
20
+
21
+ # Set timezone (e.g., UTC) to avoid configuration prompts
22
+ RUN echo "Etc/UTC" > /etc/timezone && \
23
+ ln -fs /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
24
+ dpkg-reconfigure -f noninteractive tzdata
25
+
26
+ WORKDIR /app
27
+
28
+ RUN pip install --upgrade pip
29
+
30
+ RUN pip install --no-cache-dir \
31
+ hatchling \
32
+ setuptools>=45 \
33
+ wheel \
34
+ swig>=4.0
35
+
36
+ COPY . .
37
+
38
+ RUN pip install . --no-cache-dir
39
+ RUN pip install cupy-cuda11x
40
+
41
+ # Install Jupyter Notebook and related packages
42
+ RUN pip install --no-cache-dir \
43
+ notebook \
44
+ ipykernel \
45
+ ipython
46
+
47
+ EXPOSE 8888
48
+
49
+ # Set the default command (modify as needed)
50
+ # CMD ["python", "-c", "from vbi.utils import test_imports; test_imports()"]
51
+ CMD ["jupyter", "notebook", "--ip=0.0.0.0", "--port=8888", "--no-browser", "--allow-root"]
@@ -1,14 +1,13 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vbi
3
- Version: 0.1.3
3
+ Version: 0.2.1
4
4
  Summary: Virtual brain inference.
5
5
  Author-email: Abolfazl Ziaeemehr <a.ziaeemehr@gmail.com>, Meysam Hashemi <meysam.hashemi@gmail.com>, Marmaduke Woodman <marmaduke.woodman@gmail.com>
6
- License: MIT
6
+ License-Expression: Apache-2.0
7
7
  Project-URL: homepage, https://ziaeemehr.github.io/vbi_paper/
8
8
  Project-URL: repository, https://github.com/Ziaeemehr/vbi_paper
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Topic :: Scientific/Engineering :: Information Analysis
11
- Classifier: License :: OSI Approved :: Apache Software License
12
11
  Classifier: Operating System :: OS Independent
13
12
  Requires-Python: >=3.8
14
13
  Description-Content-Type: text/markdown
@@ -75,11 +74,17 @@ Dynamic: license-file
75
74
  ```bash
76
75
  conda env create --name vbi python=3.10
77
76
  conda activate vbi
77
+ # from pip: Recommended
78
+ pip install vbi
79
+ # from source: More recent update
78
80
  git clone https://github.com/ins-amu/vbi.git
79
81
  cd vbi
80
82
  pip install .
81
83
 
82
84
  # pip install -e .[all,dev,docs]
85
+
86
+ # To skip C++ compilation, use the following environment variable and install from source:
87
+ SKIP_CPP=1 pip install -e .
83
88
  ```
84
89
 
85
90
  ## Using Docker
@@ -143,14 +148,28 @@ We welcome contributions to the VBI project! If you have suggestions, bug report
143
148
  ## Citation
144
149
 
145
150
  ```bibtex
146
- @article{VBI,
147
- author = {Ziaeemehr, Abolfazl and Woodman, Marmaduke and Domide, Lia and Petkoski, Spase and Jirsa, Viktor and Hashemi, Meysam},
148
- title = {Virtual Brain Inference (VBI): A flexible and integrative toolkit for efficient probabilistic inference on virtual brain models},
149
- journal = {bioRxiv},
150
- year = {2025},
151
- doi = {10.1101/2025.01.21.633922},
152
- url = {https://doi.org/10.1101/2025.01.21.633922},
153
- abstract = {Network neuroscience has proven essential for understanding the principles and mechanisms underlying complex brain (dys)function and cognition. In this context, whole-brain network modeling--also known as virtual brain modeling--combines computational models of brain dynamics (placed at each network node) with individual brain imaging data (to coordinate and connect the nodes), advancing our understanding of the complex dynamics of the brain and its neurobiological underpinnings. However, there remains a critical need for automated model inversion tools to estimate control (bifurcation) parameters at large scales and across neuroimaging modalities, given their varying spatio-temporal resolutions. This study aims to address this gap by introducing a flexible and integrative toolkit for efficient Bayesian inference on virtual brain models, called Virtual Brain Inference (VBI). This open-source toolkit provides fast simulations, taxonomy of feature extraction, efficient data storage and loading, and probabilistic machine learning algorithms, enabling biophysically interpretable inference from non-invasive and invasive recordings. Through in-silico testing, we demonstrate the accuracy and reliability of inference for commonly used whole-brain network models and their associated neuroimaging data. VBI shows potential to improve hypothesis evaluation in network neuroscience through uncertainty quantification, and contribute to advances in precision medicine by enhancing the predictive power of virtual brain models.}
151
+ @article{VBI,
152
+ title={Virtual Brain Inference (VBI): A flexible and integrative toolkit for efficient probabilistic inference on virtual brain models},
153
+ author={Ziaeemehr, Abolfazl and Woodman, Marmaduke and Domide, Lia and Petkoski, Spase and Jirsa, Viktor and Hashemi, Meysam},
154
+ DOI={10.7554/elife.106194.1},
155
+ url={http://dx.doi.org/10.7554/eLife.106194.1},
156
+ publisher={eLife Sciences Publications, Ltd},
157
+ year={2025},
158
+ abstract = {Network neuroscience has proven essential for understanding the principles and mechanisms
159
+ underlying complex brain (dys)function and cognition. In this context, whole-brain network modeling–
160
+ also known as virtual brain modeling–combines computational models of brain dynamics (placed at each network node)
161
+ with individual brain imaging data (to coordinate and connect the nodes), advancing our understanding of
162
+ the complex dynamics of the brain and its neurobiological underpinnings. However, there remains a critical
163
+ need for automated model inversion tools to estimate control (bifurcation) parameters at large scales
164
+ associated with neuroimaging modalities, given their varying spatio-temporal resolutions.
165
+ This study aims to address this gap by introducing a flexible and integrative toolkit for efficient Bayesian inference
166
+ on virtual brain models, called Virtual Brain Inference (VBI). This open-source toolkit provides fast simulations,
167
+ taxonomy of feature extraction, efficient data storage and loading, and probabilistic machine learning algorithms,
168
+ enabling biophysically interpretable inference from non-invasive and invasive recordings.
169
+ Through in-silico testing, we demonstrate the accuracy and reliability of inference for commonly used
170
+ whole-brain network models and their associated neuroimaging data. VBI shows potential to improve hypothesis
171
+ evaluation in network neuroscience through uncertainty quantification, and contribute to advances in precision
172
+ medicine by enhancing the predictive power of virtual brain models.}
154
173
  }
155
174
  ```
156
175
 
@@ -20,11 +20,17 @@
20
20
  ```bash
21
21
  conda env create --name vbi python=3.10
22
22
  conda activate vbi
23
+ # from pip: Recommended
24
+ pip install vbi
25
+ # from source: More recent update
23
26
  git clone https://github.com/ins-amu/vbi.git
24
27
  cd vbi
25
28
  pip install .
26
29
 
27
30
  # pip install -e .[all,dev,docs]
31
+
32
+ # To skip C++ compilation, use the following environment variable and install from source:
33
+ SKIP_CPP=1 pip install -e .
28
34
  ```
29
35
 
30
36
  ## Using Docker
@@ -88,14 +94,28 @@ We welcome contributions to the VBI project! If you have suggestions, bug report
88
94
  ## Citation
89
95
 
90
96
  ```bibtex
91
- @article{VBI,
92
- author = {Ziaeemehr, Abolfazl and Woodman, Marmaduke and Domide, Lia and Petkoski, Spase and Jirsa, Viktor and Hashemi, Meysam},
93
- title = {Virtual Brain Inference (VBI): A flexible and integrative toolkit for efficient probabilistic inference on virtual brain models},
94
- journal = {bioRxiv},
95
- year = {2025},
96
- doi = {10.1101/2025.01.21.633922},
97
- url = {https://doi.org/10.1101/2025.01.21.633922},
98
- abstract = {Network neuroscience has proven essential for understanding the principles and mechanisms underlying complex brain (dys)function and cognition. In this context, whole-brain network modeling--also known as virtual brain modeling--combines computational models of brain dynamics (placed at each network node) with individual brain imaging data (to coordinate and connect the nodes), advancing our understanding of the complex dynamics of the brain and its neurobiological underpinnings. However, there remains a critical need for automated model inversion tools to estimate control (bifurcation) parameters at large scales and across neuroimaging modalities, given their varying spatio-temporal resolutions. This study aims to address this gap by introducing a flexible and integrative toolkit for efficient Bayesian inference on virtual brain models, called Virtual Brain Inference (VBI). This open-source toolkit provides fast simulations, taxonomy of feature extraction, efficient data storage and loading, and probabilistic machine learning algorithms, enabling biophysically interpretable inference from non-invasive and invasive recordings. Through in-silico testing, we demonstrate the accuracy and reliability of inference for commonly used whole-brain network models and their associated neuroimaging data. VBI shows potential to improve hypothesis evaluation in network neuroscience through uncertainty quantification, and contribute to advances in precision medicine by enhancing the predictive power of virtual brain models.}
97
+ @article{VBI,
98
+ title={Virtual Brain Inference (VBI): A flexible and integrative toolkit for efficient probabilistic inference on virtual brain models},
99
+ author={Ziaeemehr, Abolfazl and Woodman, Marmaduke and Domide, Lia and Petkoski, Spase and Jirsa, Viktor and Hashemi, Meysam},
100
+ DOI={10.7554/elife.106194.1},
101
+ url={http://dx.doi.org/10.7554/eLife.106194.1},
102
+ publisher={eLife Sciences Publications, Ltd},
103
+ year={2025},
104
+ abstract = {Network neuroscience has proven essential for understanding the principles and mechanisms
105
+ underlying complex brain (dys)function and cognition. In this context, whole-brain network modeling–
106
+ also known as virtual brain modeling–combines computational models of brain dynamics (placed at each network node)
107
+ with individual brain imaging data (to coordinate and connect the nodes), advancing our understanding of
108
+ the complex dynamics of the brain and its neurobiological underpinnings. However, there remains a critical
109
+ need for automated model inversion tools to estimate control (bifurcation) parameters at large scales
110
+ associated with neuroimaging modalities, given their varying spatio-temporal resolutions.
111
+ This study aims to address this gap by introducing a flexible and integrative toolkit for efficient Bayesian inference
112
+ on virtual brain models, called Virtual Brain Inference (VBI). This open-source toolkit provides fast simulations,
113
+ taxonomy of feature extraction, efficient data storage and loading, and probabilistic machine learning algorithms,
114
+ enabling biophysically interpretable inference from non-invasive and invasive recordings.
115
+ Through in-silico testing, we demonstrate the accuracy and reliability of inference for commonly used
116
+ whole-brain network models and their associated neuroimaging data. VBI shows potential to improve hypothesis
117
+ evaluation in network neuroscience through uncertainty quantification, and contribute to advances in precision
118
+ medicine by enhancing the predictive power of virtual brain models.}
99
119
  }
100
120
  ```
101
121
 
@@ -7,7 +7,7 @@ from setuptools_scm import get_version
7
7
  # sys.path.insert(0, os.path.abspath("../vbi"))
8
8
  sys.path.insert(0, os.path.abspath(".."))
9
9
 
10
- needs_sphinx = "1.3"
10
+ needs_sphinx = "0.2.1"
11
11
 
12
12
  extensions = [
13
13
  "sphinx.ext.autodoc",