brainfc 0.3.0__tar.gz → 0.4.0__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 (311) hide show
  1. {brainfc-0.3.0 → brainfc-0.4.0}/.gitattributes +2 -0
  2. {brainfc-0.3.0 → brainfc-0.4.0}/.github/workflows/ci.yml +7 -1
  3. {brainfc-0.3.0 → brainfc-0.4.0}/.gitignore +2 -0
  4. {brainfc-0.3.0 → brainfc-0.4.0}/CHANGELOG.md +14 -1
  5. {brainfc-0.3.0 → brainfc-0.4.0}/CITATION.cff +1 -1
  6. {brainfc-0.3.0 → brainfc-0.4.0}/CONTRIBUTING.md +5 -2
  7. brainfc-0.4.0/NOTICE +28 -0
  8. {brainfc-0.3.0 → brainfc-0.4.0}/PKG-INFO +24 -5
  9. {brainfc-0.3.0 → brainfc-0.4.0}/PYPI.md +15 -3
  10. {brainfc-0.3.0 → brainfc-0.4.0}/README.en.md +24 -18
  11. {brainfc-0.3.0 → brainfc-0.4.0}/README.md +32 -25
  12. brainfc-0.4.0/docs/api-inventory.json +1066 -0
  13. {brainfc-0.3.0 → brainfc-0.4.0}/docs/api-reference.md +799 -19
  14. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/README.md +1 -1
  15. brainfc-0.4.0/docs/assets/eight-views.png +0 -0
  16. brainfc-0.4.0/docs/assets/matrix-provenance.json +17 -0
  17. brainfc-0.4.0/docs/assets/matrix.png +0 -0
  18. brainfc-0.4.0/docs/assets/viewer.png +0 -0
  19. {brainfc-0.3.0 → brainfc-0.4.0}/docs/cli-reference.md +34 -7
  20. {brainfc-0.3.0 → brainfc-0.4.0}/docs/http-api.md +2 -2
  21. {brainfc-0.3.0 → brainfc-0.4.0}/docs/http-reference.md +84 -2
  22. brainfc-0.4.0/docs/hyper-brain-migration.md +36 -0
  23. {brainfc-0.3.0 → brainfc-0.4.0}/docs/index.md +4 -0
  24. brainfc-0.4.0/docs/network/api.md +105 -0
  25. brainfc-0.4.0/docs/network/implementation-contract.md +33 -0
  26. brainfc-0.4.0/docs/network/input-formats.md +30 -0
  27. brainfc-0.4.0/docs/network/methods.md +29 -0
  28. brainfc-0.4.0/docs/network/third-party.md +36 -0
  29. brainfc-0.4.0/docs/network/tool-catalogue.md +120 -0
  30. brainfc-0.4.0/docs/network/upstream.json +102 -0
  31. brainfc-0.4.0/docs/network/validation-0.2.1.md +23 -0
  32. brainfc-0.4.0/docs/network/validation-0.2.md +65 -0
  33. brainfc-0.4.0/docs/network/validation-0.3.0.md +33 -0
  34. brainfc-0.4.0/docs/network/validation.md +56 -0
  35. brainfc-0.4.0/docs/network/viewer-atlases.md +84 -0
  36. brainfc-0.4.0/docs/network/visual-media.md +46 -0
  37. brainfc-0.4.0/docs/network-analysis.md +137 -0
  38. brainfc-0.4.0/docs/network-http-reference.md +901 -0
  39. brainfc-0.4.0/docs/network-openapi.json +827 -0
  40. {brainfc-0.3.0/src/brainfc/web/static/reference → brainfc-0.4.0/docs}/openapi.json +86 -2
  41. brainfc-0.4.0/docs/privacy-review.md +23 -0
  42. {brainfc-0.3.0 → brainfc-0.4.0}/docs/python-api.md +2 -2
  43. {brainfc-0.3.0 → brainfc-0.4.0}/docs/quickstart.md +8 -6
  44. brainfc-0.4.0/docs/real-example.md +57 -0
  45. brainfc-0.4.0/docs/release.md +53 -0
  46. brainfc-0.4.0/docs/uih-metadata.md +24 -0
  47. brainfc-0.4.0/docs/validation-v0.4.0.md +24 -0
  48. brainfc-0.4.0/docs/web-theme.md +18 -0
  49. brainfc-0.4.0/examples/network_analysis.py +28 -0
  50. brainfc-0.4.0/examples/reconcile_uih_sidecar.py +94 -0
  51. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/package-lock.json +2 -2
  52. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/package.json +1 -1
  53. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/Workflow.tsx +1 -1
  54. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/main.tsx +14 -4
  55. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/style.css +135 -103
  56. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/viewerTypes.ts +1 -1
  57. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-release.cjs +51 -5
  58. brainfc-0.4.0/network-frontend/README.md +17 -0
  59. brainfc-0.4.0/network-frontend/index.html +17 -0
  60. brainfc-0.4.0/network-frontend/licenses/apache-2.0-roboto.txt +201 -0
  61. brainfc-0.4.0/network-frontend/licenses/blosc-1.18.1.txt +31 -0
  62. brainfc-0.4.0/network-frontend/licenses/blosc-bitshuffle.txt +21 -0
  63. brainfc-0.4.0/network-frontend/licenses/blosc-fastlz.txt +24 -0
  64. brainfc-0.4.0/network-frontend/licenses/blosc-lz4.txt +32 -0
  65. brainfc-0.4.0/network-frontend/licenses/blosc-snappy.txt +28 -0
  66. brainfc-0.4.0/network-frontend/licenses/blosc-stdint.txt +29 -0
  67. brainfc-0.4.0/network-frontend/licenses/blosc-zlib.txt +22 -0
  68. brainfc-0.4.0/network-frontend/licenses/fastsurfer-attribution.txt +13 -0
  69. brainfc-0.4.0/network-frontend/licenses/ieee754.txt +11 -0
  70. brainfc-0.4.0/network-frontend/licenses/lz4-1.9.2.txt +24 -0
  71. brainfc-0.4.0/network-frontend/licenses/maplibre-4.7.1.txt +116 -0
  72. brainfc-0.4.0/network-frontend/licenses/niivue-0.67.0.txt +25 -0
  73. brainfc-0.4.0/network-frontend/licenses/sources.json +109 -0
  74. brainfc-0.4.0/network-frontend/licenses/zstd-1.5.5.txt +30 -0
  75. brainfc-0.4.0/network-frontend/package-lock.json +2146 -0
  76. brainfc-0.4.0/network-frontend/package.json +34 -0
  77. brainfc-0.4.0/network-frontend/scripts/capture-gallery.cjs +73 -0
  78. brainfc-0.4.0/network-frontend/scripts/capture-orbit.cjs +82 -0
  79. brainfc-0.4.0/network-frontend/scripts/fetch-license-sources.mjs +30 -0
  80. brainfc-0.4.0/network-frontend/scripts/third-party-notices.mjs +148 -0
  81. brainfc-0.4.0/network-frontend/src/Anatomy.tsx +148 -0
  82. brainfc-0.4.0/network-frontend/src/App.tsx +1439 -0
  83. brainfc-0.4.0/network-frontend/src/AtlasImport.tsx +177 -0
  84. brainfc-0.4.0/network-frontend/src/AtlasSlices.tsx +80 -0
  85. brainfc-0.4.0/network-frontend/src/BrainScene.tsx +1204 -0
  86. brainfc-0.4.0/network-frontend/src/Plot.tsx +79 -0
  87. brainfc-0.4.0/network-frontend/src/Results.tsx +1443 -0
  88. brainfc-0.4.0/network-frontend/src/Statistics.tsx +299 -0
  89. brainfc-0.4.0/network-frontend/src/main.tsx +30 -0
  90. brainfc-0.4.0/network-frontend/src/styles.css +2356 -0
  91. brainfc-0.4.0/network-frontend/src/types.ts +123 -0
  92. brainfc-0.4.0/network-frontend/src/vendor.d.ts +4 -0
  93. brainfc-0.4.0/network-frontend/src/viewer.css +869 -0
  94. brainfc-0.4.0/network-frontend/src/viewerAppearance.ts +79 -0
  95. brainfc-0.4.0/network-frontend/src/viewerTypes.ts +166 -0
  96. brainfc-0.4.0/network-frontend/tests/viewer.test.cjs +69 -0
  97. brainfc-0.4.0/network-frontend/tsconfig.json +15 -0
  98. brainfc-0.4.0/network-frontend/vite.config.ts +15 -0
  99. {brainfc-0.3.0 → brainfc-0.4.0}/pyproject.toml +7 -6
  100. {brainfc-0.3.0 → brainfc-0.4.0}/scripts/check_release.py +36 -6
  101. {brainfc-0.3.0 → brainfc-0.4.0}/scripts/generate_reference.py +36 -6
  102. brainfc-0.4.0/scripts/render_example_matrix.py +100 -0
  103. {brainfc-0.3.0 → brainfc-0.4.0}/scripts/smoke_wheel.py +12 -0
  104. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/_version.py +1 -1
  105. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/cli.py +41 -4
  106. brainfc-0.4.0/src/brainfc/data/rest01/README.md +24 -0
  107. brainfc-0.4.0/src/brainfc/data/rest01/confounds.tsv +151 -0
  108. brainfc-0.4.0/src/brainfc/data/rest01/example.json +125 -0
  109. brainfc-0.4.0/src/brainfc/data/rest01/privacy-review.json +40 -0
  110. brainfc-0.4.0/src/brainfc/data/rest01/reference_mask.nii.gz +0 -0
  111. brainfc-0.4.0/src/brainfc/data/rest01/rois.tsv +101 -0
  112. brainfc-0.4.0/src/brainfc/data/rest01/timeseries.json +1 -0
  113. brainfc-0.4.0/src/brainfc/data/rest01/timeseries.tsv +151 -0
  114. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/demo.py +34 -7
  115. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/models.py +48 -22
  116. brainfc-0.4.0/src/brainfc/network/__init__.py +13 -0
  117. brainfc-0.4.0/src/brainfc/network/__main__.py +4 -0
  118. brainfc-0.4.0/src/brainfc/network/analysis.py +83 -0
  119. brainfc-0.4.0/src/brainfc/network/atlas.py +461 -0
  120. brainfc-0.4.0/src/brainfc/network/atlas_sources.py +220 -0
  121. brainfc-0.4.0/src/brainfc/network/bridge.py +107 -0
  122. brainfc-0.4.0/src/brainfc/network/cli.py +72 -0
  123. brainfc-0.4.0/src/brainfc/network/connectivity.py +120 -0
  124. brainfc-0.4.0/src/brainfc/network/export.py +135 -0
  125. brainfc-0.4.0/src/brainfc/network/graph.py +213 -0
  126. brainfc-0.4.0/src/brainfc/network/hypergraph.py +238 -0
  127. brainfc-0.4.0/src/brainfc/network/io.py +460 -0
  128. brainfc-0.4.0/src/brainfc/network/statistics.py +161 -0
  129. brainfc-0.4.0/src/brainfc/network/types.py +173 -0
  130. brainfc-0.4.0/src/brainfc/network/view.py +85 -0
  131. brainfc-0.4.0/src/brainfc/network/visualization.py +74 -0
  132. brainfc-0.4.0/src/brainfc/network/web/__init__.py +1 -0
  133. brainfc-0.4.0/src/brainfc/network/web/app.py +222 -0
  134. brainfc-0.4.0/src/brainfc/network/web/atlases.py +158 -0
  135. brainfc-0.4.0/src/brainfc/network/web/limits.py +45 -0
  136. brainfc-0.4.0/src/brainfc/network/web/reference.py +51 -0
  137. brainfc-0.4.0/src/brainfc/network/web/static/THIRD_PARTY_NOTICES.txt +1600 -0
  138. brainfc-0.4.0/src/brainfc/network/web/static/assets/AtlasSlices-DN2TfyxA.js +2 -0
  139. brainfc-0.4.0/src/brainfc/network/web/static/assets/Plot-DK7tZBcO.js +3858 -0
  140. brainfc-0.4.0/src/brainfc/network/web/static/assets/Results-Dj-tACiK.js +4281 -0
  141. brainfc-0.4.0/src/brainfc/network/web/static/assets/Results-KnpfgmSb.css +1 -0
  142. brainfc-0.4.0/src/brainfc/network/web/static/assets/blosc-eOvwLB0b.js +17 -0
  143. brainfc-0.4.0/src/brainfc/network/web/static/assets/chunk-INHXZS53-D3tQiqtZ.js +1 -0
  144. brainfc-0.4.0/src/brainfc/network/web/static/assets/index-C6XUpY6_.js +231 -0
  145. brainfc-0.4.0/src/brainfc/network/web/static/assets/index-DmwERFJy.css +1 -0
  146. brainfc-0.4.0/src/brainfc/network/web/static/assets/index-sxmwZ7P5.js +2340 -0
  147. brainfc-0.4.0/src/brainfc/network/web/static/assets/lz4-DMxY7r4t.js +15 -0
  148. brainfc-0.4.0/src/brainfc/network/web/static/assets/zstd-qZ8jC7Re.js +15 -0
  149. brainfc-0.4.0/src/brainfc/network/web/static/index.html +18 -0
  150. brainfc-0.4.0/src/brainfc/network/web/storage.py +121 -0
  151. brainfc-0.4.0/src/brainfc/network/web/worker.py +116 -0
  152. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/app.py +82 -7
  153. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/schemas.py +3 -0
  154. brainfc-0.4.0/src/brainfc/web/static/app.css +1 -0
  155. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/app.js +31 -31
  156. brainfc-0.4.0/src/brainfc/web/static/reference/api-inventory.json +1066 -0
  157. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/api-reference.html +516 -20
  158. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/cli-reference.html +31 -7
  159. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/datasets.html +1 -1
  160. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/formats.html +1 -1
  161. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/http-api.html +4 -4
  162. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/http-reference.html +80 -2
  163. brainfc-0.4.0/src/brainfc/web/static/reference/hyper-brain-migration.html +60 -0
  164. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/index.html +4 -2
  165. brainfc-0.4.0/src/brainfc/web/static/reference/network/api.html +105 -0
  166. brainfc-0.4.0/src/brainfc/web/static/reference/network/implementation-contract.html +30 -0
  167. brainfc-0.4.0/src/brainfc/web/static/reference/network/input-formats.html +20 -0
  168. brainfc-0.4.0/src/brainfc/web/static/reference/network/methods.html +15 -0
  169. brainfc-0.4.0/src/brainfc/web/static/reference/network/third-party.html +82 -0
  170. brainfc-0.4.0/src/brainfc/web/static/reference/network/tool-catalogue.html +573 -0
  171. brainfc-0.4.0/src/brainfc/web/static/reference/network/upstream.json +102 -0
  172. brainfc-0.4.0/src/brainfc/web/static/reference/network/validation-0.2.1.html +20 -0
  173. brainfc-0.4.0/src/brainfc/web/static/reference/network/validation-0.2.html +50 -0
  174. brainfc-0.4.0/src/brainfc/web/static/reference/network/validation-0.3.0.html +29 -0
  175. brainfc-0.4.0/src/brainfc/web/static/reference/network/validation.html +89 -0
  176. brainfc-0.4.0/src/brainfc/web/static/reference/network/viewer-atlases.html +113 -0
  177. brainfc-0.4.0/src/brainfc/web/static/reference/network/visual-media.html +57 -0
  178. brainfc-0.4.0/src/brainfc/web/static/reference/network-analysis.html +130 -0
  179. brainfc-0.4.0/src/brainfc/web/static/reference/network-http-reference.html +832 -0
  180. brainfc-0.4.0/src/brainfc/web/static/reference/network-openapi.json +827 -0
  181. {brainfc-0.3.0/docs → brainfc-0.4.0/src/brainfc/web/static/reference}/openapi.json +86 -2
  182. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/outputs.html +1 -1
  183. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/presets-and-workflow.html +1 -1
  184. brainfc-0.4.0/src/brainfc/web/static/reference/privacy-review.html +16 -0
  185. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/processing.html +1 -1
  186. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/python-api.html +3 -3
  187. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/quickstart.html +8 -7
  188. brainfc-0.4.0/src/brainfc/web/static/reference/real-example.html +66 -0
  189. brainfc-0.4.0/src/brainfc/web/static/reference/release.html +64 -0
  190. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/research.html +1 -1
  191. brainfc-0.4.0/src/brainfc/web/static/reference/uih-metadata.html +45 -0
  192. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation-v0.2.0.html +1 -1
  193. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation-v0.3.0.html +1 -1
  194. brainfc-0.4.0/src/brainfc/web/static/reference/validation-v0.4.0.html +22 -0
  195. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation.html +1 -1
  196. brainfc-0.4.0/src/brainfc/web/static/reference/web-theme.html +46 -0
  197. brainfc-0.4.0/src/hicbrain/__init__.py +3 -0
  198. brainfc-0.4.0/src/hicbrain/__main__.py +4 -0
  199. brainfc-0.4.0/src/hicbrain/analysis.py +5 -0
  200. brainfc-0.4.0/src/hicbrain/atlas.py +5 -0
  201. brainfc-0.4.0/src/hicbrain/atlas_sources.py +5 -0
  202. brainfc-0.4.0/src/hicbrain/cli.py +5 -0
  203. brainfc-0.4.0/src/hicbrain/connectivity.py +5 -0
  204. brainfc-0.4.0/src/hicbrain/export.py +5 -0
  205. brainfc-0.4.0/src/hicbrain/graph.py +5 -0
  206. brainfc-0.4.0/src/hicbrain/hypergraph.py +5 -0
  207. brainfc-0.4.0/src/hicbrain/io.py +5 -0
  208. brainfc-0.4.0/src/hicbrain/statistics.py +5 -0
  209. brainfc-0.4.0/src/hicbrain/types.py +5 -0
  210. brainfc-0.4.0/src/hicbrain/view.py +5 -0
  211. brainfc-0.4.0/src/hicbrain/visualization.py +5 -0
  212. brainfc-0.4.0/src/hicbrain/web/__init__.py +1 -0
  213. brainfc-0.4.0/src/hicbrain/web/app.py +5 -0
  214. brainfc-0.4.0/src/hicbrain/web/atlases.py +5 -0
  215. brainfc-0.4.0/src/hicbrain/web/limits.py +5 -0
  216. brainfc-0.4.0/src/hicbrain/web/reference.py +5 -0
  217. brainfc-0.4.0/src/hicbrain/web/storage.py +5 -0
  218. brainfc-0.4.0/src/hicbrain/web/worker.py +5 -0
  219. brainfc-0.4.0/tests/network/__init__.py +0 -0
  220. brainfc-0.4.0/tests/network/test_analysis_web.py +167 -0
  221. brainfc-0.4.0/tests/network/test_atlas_view.py +294 -0
  222. brainfc-0.4.0/tests/network/test_connectivity.py +78 -0
  223. brainfc-0.4.0/tests/network/test_io.py +217 -0
  224. brainfc-0.4.0/tests/network/test_resource_contract.py +217 -0
  225. brainfc-0.4.0/tests/network/test_statistics.py +118 -0
  226. brainfc-0.4.0/tests/network/test_structures.py +141 -0
  227. brainfc-0.4.0/tests/test_example_release_scope.py +17 -0
  228. brainfc-0.4.0/tests/test_network_bridge.py +116 -0
  229. brainfc-0.4.0/tests/test_real_example.py +38 -0
  230. brainfc-0.4.0/tests/test_uih_review.py +85 -0
  231. brainfc-0.4.0/tests/test_web.py +55 -0
  232. brainfc-0.3.0/NOTICE +0 -19
  233. brainfc-0.3.0/docs/api-inventory.json +0 -434
  234. brainfc-0.3.0/docs/assets/eight-views.png +0 -0
  235. brainfc-0.3.0/docs/assets/matrix.png +0 -0
  236. brainfc-0.3.0/docs/assets/viewer.png +0 -0
  237. brainfc-0.3.0/docs/release.md +0 -89
  238. brainfc-0.3.0/src/brainfc/web/static/app.css +0 -1
  239. brainfc-0.3.0/src/brainfc/web/static/reference/api-inventory.json +0 -434
  240. brainfc-0.3.0/src/brainfc/web/static/reference/release.html +0 -84
  241. brainfc-0.3.0/tests/test_web.py +0 -25
  242. {brainfc-0.3.0 → brainfc-0.4.0}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
  243. {brainfc-0.3.0 → brainfc-0.4.0}/.github/pull_request_template.md +0 -0
  244. {brainfc-0.3.0 → brainfc-0.4.0}/.github/workflows/publish.yml +0 -0
  245. {brainfc-0.3.0 → brainfc-0.4.0}/LICENSE +0 -0
  246. {brainfc-0.3.0 → brainfc-0.4.0}/SECURITY.md +0 -0
  247. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/ARCHIFY-LICENSE +0 -0
  248. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/brainfc-hero.png +0 -0
  249. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/hero-prompt.txt +0 -0
  250. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.dataflow.json +0 -0
  251. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.html +0 -0
  252. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.png +0 -0
  253. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.receipt.json +0 -0
  254. {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.svg +0 -0
  255. {brainfc-0.3.0 → brainfc-0.4.0}/docs/datasets.md +0 -0
  256. {brainfc-0.3.0 → brainfc-0.4.0}/docs/eight-views-v02.png +0 -0
  257. {brainfc-0.3.0 → brainfc-0.4.0}/docs/formats.md +0 -0
  258. {brainfc-0.3.0 → brainfc-0.4.0}/docs/interface-preview.png +0 -0
  259. {brainfc-0.3.0 → brainfc-0.4.0}/docs/outputs.md +0 -0
  260. {brainfc-0.3.0 → brainfc-0.4.0}/docs/presets-and-workflow.md +0 -0
  261. {brainfc-0.3.0 → brainfc-0.4.0}/docs/processing.md +0 -0
  262. {brainfc-0.3.0 → brainfc-0.4.0}/docs/requirements-tested-windows-py312.txt +0 -0
  263. {brainfc-0.3.0 → brainfc-0.4.0}/docs/research.md +0 -0
  264. {brainfc-0.3.0 → brainfc-0.4.0}/docs/validation-v0.2.0.md +0 -0
  265. {brainfc-0.3.0 → brainfc-0.4.0}/docs/validation-v0.3.0.md +0 -0
  266. {brainfc-0.3.0 → brainfc-0.4.0}/docs/validation.md +0 -0
  267. {brainfc-0.3.0 → brainfc-0.4.0}/examples/batch_derivatives.py +0 -0
  268. {brainfc-0.3.0 → brainfc-0.4.0}/examples/config-preprocessed.json +0 -0
  269. {brainfc-0.3.0 → brainfc-0.4.0}/examples/download_adhd_sample.py +0 -0
  270. {brainfc-0.3.0 → brainfc-0.4.0}/examples/http_client.py +0 -0
  271. {brainfc-0.3.0 → brainfc-0.4.0}/examples/prepare_atlas_demo.py +0 -0
  272. {brainfc-0.3.0 → brainfc-0.4.0}/examples/quickstart.py +0 -0
  273. {brainfc-0.3.0 → brainfc-0.4.0}/examples/roi_timeseries.py +0 -0
  274. {brainfc-0.3.0 → brainfc-0.4.0}/examples/validate_real_adhd.py +0 -0
  275. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/capture-demo.cjs +0 -0
  276. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/capture-readme.cjs +0 -0
  277. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/licenses.mjs +0 -0
  278. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/EightViews.tsx +0 -0
  279. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/display.ts +0 -0
  280. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/BrainScene.tsx +0 -0
  281. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/types.ts +0 -0
  282. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/viewerAppearance.ts +0 -0
  283. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-revision.cjs +0 -0
  284. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-ui.cjs +0 -0
  285. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-workflow-branches.cjs +0 -0
  286. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/tsconfig.json +0 -0
  287. {brainfc-0.3.0 → brainfc-0.4.0}/frontend/vite.config.ts +0 -0
  288. {brainfc-0.3.0 → brainfc-0.4.0}/scripts/package_release.py +0 -0
  289. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/__init__.py +0 -0
  290. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/__main__.py +0 -0
  291. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/atlases.py +0 -0
  292. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/export.py +0 -0
  293. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/imaging.py +0 -0
  294. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/io.py +0 -0
  295. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/pipeline.py +0 -0
  296. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/plotting.py +0 -0
  297. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/preprocessing.py +0 -0
  298. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/presets.py +0 -0
  299. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/__init__.py +0 -0
  300. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/THIRD_PARTY_NOTICES.txt +0 -0
  301. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/index.html +0 -0
  302. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/eight-views-v02.png +0 -0
  303. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/interface-preview.png +0 -0
  304. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation-v0.2.1.html +0 -0
  305. {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/workflow.py +0 -0
  306. {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_formats.py +0 -0
  307. {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_pipeline.py +0 -0
  308. {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_release_api.py +0 -0
  309. {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_surface.py +0 -0
  310. {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_workflow.py +0 -0
  311. {brainfc-0.3.0 → brainfc-0.4.0}//345/220/257/345/212/250/347/225/214/351/235/242.cmd" +0 -0
@@ -2,6 +2,7 @@
2
2
  *.py text eol=lf
3
3
  *.md text eol=lf
4
4
  *.json text eol=lf
5
+ *.tsv text eol=lf
5
6
  *.yml text eol=lf
6
7
  *.yaml text eol=lf
7
8
  *.ts text eol=lf
@@ -13,4 +14,5 @@
13
14
  *.txt text eol=lf
14
15
  docs/assets/ARCHIFY-LICENSE text eol=lf
15
16
  *.png binary
17
+ *.nii.gz binary
16
18
  *.cmd text eol=crlf
@@ -35,12 +35,18 @@ jobs:
35
35
  with:
36
36
  node-version: '22'
37
37
  cache: npm
38
- cache-dependency-path: frontend/package-lock.json
38
+ cache-dependency-path: |
39
+ frontend/package-lock.json
40
+ network-frontend/package-lock.json
39
41
  - run: python -m pip install -e ".[dev]"
40
42
  - run: npm ci
41
43
  working-directory: frontend
42
44
  - run: npm run check && npm run build
43
45
  working-directory: frontend
46
+ - run: npm ci
47
+ working-directory: network-frontend
48
+ - run: npm run check && npm test && npm run build
49
+ working-directory: network-frontend
44
50
  - run: python scripts/generate_reference.py --check
45
51
  - run: python scripts/check_release.py
46
52
  - run: python -m build
@@ -8,6 +8,7 @@ __pycache__/
8
8
  .pytest_cache/
9
9
  .ruff_cache/
10
10
  frontend/node_modules/
11
+ node_modules/
11
12
  *.log
12
13
  .venv*/
13
14
  .env
@@ -16,6 +17,7 @@ frontend/node_modules/
16
17
  license.txt
17
18
  *.nii
18
19
  *.nii.gz
20
+ !src/brainfc/data/rest01/reference_mask.nii.gz
19
21
  *.dcm
20
22
  *.npy
21
23
  *.npz
@@ -1,12 +1,25 @@
1
1
  # 更新记录
2
2
 
3
+ ## 0.4.0 — 2026-09-12
4
+
5
+ - 合入 Hyper-Brain 的普通图、原生超图、结构指标、组间统计、图谱管理和完整网络工作台。
6
+ - 新增 `brainfc.network`、`Connectome.to_network()` / `analyze_network()` 和 `brainfc network`。
7
+ - `brainfc serve` 同时提供提取和 `/networks/` 网络分析;提取结果自动携带矩阵、ROI 顺序、坐标和处理记录,免重新上传。
8
+ - 保留 `hicbrain` 导入与命令兼容层;升级已有环境前请移除旧 `hic-brain` distribution,避免共享文件冲突。
9
+ - 网页默认运行真实 rest01 样例;统一工大蓝配色,精简安装与上手说明。
10
+
11
+ - 新增经授权、去除直接身份标识的静息态样例 `rest01`,可通过 Python 或 `brainfc demo --kind rest01` 运行。
12
+ - 记录像素文字、文件头、公开文件与发行物的隐私核查范围;原始 DICOM、个体 T1/BOLD 和本地影像压缩包不公开。
13
+ - 提供有对照实验证据的 UIH TE/读出参数核验脚本,保留源文件并拒绝未知冲突。
14
+ - README 矩阵和同步脑网络图改用真实 rest01 结果;标注原始脑区顺序、网络边界与固定色标,并提供绘图脚本。
15
+
3
16
  ## 0.3.0 — 2026-09-12
4
17
 
5
18
  - 正式采用分发名 `brainfc`、Python 导入名 `brainfc`、命令行 `brainfc`。
6
19
  - 默认安装包含科学计算和本地网页,无需额外选择 `[web]`。
7
20
  - 原有函数、处理顺序与结果契约保持不变;完整 API 和示例同步新名称。
8
21
  - 源码单独存放于新的 `brainfc` 目录,旧发行包及结果保留。
9
- - 本地构建验证,尚未上传 PyPI。
22
+ - 发布到 PyPI。
10
23
 
11
24
  ## 0.2.1 — 2026-09-12
12
25
 
@@ -6,7 +6,7 @@ repository-code: "https://github.com/hanxiangmin/brainfc"
6
6
  abstract: "Local single-run fMRI to ROI time series and signed functional connectivity, with a Python API, command line, and local graphical interface."
7
7
  authors:
8
8
  - name: "BrainFC contributors"
9
- version: 0.3.0
9
+ version: 0.4.0
10
10
  date-released: 2026-09-12
11
11
  license: Apache-2.0
12
12
  keywords:
@@ -11,6 +11,9 @@ python -m pip install -e ".[dev]"
11
11
  cd frontend
12
12
  npm ci
13
13
  cd ..
14
+ cd network-frontend
15
+ npm ci
16
+ cd ..
14
17
  ```
15
18
 
16
19
  ## 提交前验证
@@ -25,9 +28,9 @@ python -m build
25
28
  python -m twine check dist/*.whl dist/*.tar.gz
26
29
  ```
27
30
 
28
- 前端改动运行 `npm run check`、`npm run build`;构建后的 JS/CSS 与第三方许可证随包分发,需要一起更新。`npm run test:ui` 会启动临时本地服务并使用 Playwright,首次需要 `npx playwright install chromium`,也可通过 `FMRI_TEST_CHROMIUM` 指定已有浏览器。
31
+ 前端改动在 `frontend` 和 `network-frontend` 分别运行 `npm run check`、`npm run build`;后者还运行 `npm test`。构建后的 JS/CSS 与第三方许可证随包分发,需要一起更新。在 `frontend` 运行 `npm run test:ui` 会启动临时本地服务,用 Playwright 验证提取、自动传递、网络界面和导出;首次需要 `npx playwright install chromium`,也可通过 `FMRI_TEST_CHROMIUM` 指定已有浏览器。
29
32
 
30
- 函数 docstring 采用 NumPy 风格;更改函数/默认值后重新生成参考和 OpenAPI。`Config` 是科学参数的唯一默认来源。版本改 `src/brainfc/_version.py`,并同步 frontend/package.json 与 package-lock.json;Vite 从该文件读显示版本。
33
+ 函数 docstring 采用 NumPy 风格;更改函数/默认值后重新生成参考和 OpenAPI。`Config` 是提取参数默认来源,`network.AnalysisConfig` 是网络分析默认来源。版本改 `src/brainfc/_version.py`,并同步两套前端的 package.json、package-lock.json 与 CITATION.cff。算法实现只放在 `brainfc.network`;`hicbrain` 仅保留薄兼容层。
31
34
 
32
35
  ## 数值与数据约定
33
36
 
brainfc-0.4.0/NOTICE ADDED
@@ -0,0 +1,28 @@
1
+ BrainFC
2
+ Copyright 2026 BrainFC contributors
3
+
4
+ The 3D viewer in frontend/src/vendor is derived from Hyper-Brain 0.3.0
5
+ https://github.com/hanxiangmin/Hyper-Brain (Apache License 2.0).
6
+ Adapted 2026-09-12. Changes include eight camera directions, coordinate bounds,
7
+ smoothed display surfaces, translucent materials, foreground hover labels,
8
+ and synchronized edge selection and eight-view export.
9
+ Hyper-Brain's graph, native hypergraph, atlas, statistics and local analysis
10
+ workbench are integrated in src/brainfc/network and network-frontend as of
11
+ BrainFC 0.4.0. The original Apache-2.0 license is retained. See
12
+ docs/network/upstream.json for the exact upstream commit and source-file list.
13
+ The hicbrain namespace is a compatibility alias to this single implementation.
14
+ React and Three.js are distributed under their MIT licenses. Their complete
15
+ license texts are included with the bundled frontend in THIRD_PARTY_NOTICES.txt.
16
+ Atlas downloads retain their original providers' licenses and citations.
17
+ The reviewed rest01 example includes ROI signals, confounds and a binary brain
18
+ mask; its direct-identifier review and distribution scope are documented in
19
+ docs/privacy-review.md. Raw DICOM and individual T1/BOLD intensity images are excluded.
20
+ The integrated network client retains its full dependency/WASM/font notices in
21
+ src/brainfc/network/web/static/THIRD_PARTY_NOTICES.txt.
22
+
23
+ The standalone diagram viewer in docs/assets/processing.html is generated with
24
+ archify skill 2.16 (MIT), https://github.com/tt-a1i/archify.
25
+ The accompanying license is in docs/assets/ARCHIFY-LICENSE.
26
+ The README hero is AI-generated conceptual product artwork; the separately
27
+ identified README application previews use the reviewed rest01 signals and are
28
+ actual renders. Older synthetic gallery examples remain explicitly identified.
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: brainfc
3
- Version: 0.3.0
4
- Summary: Local fMRI to functional connectivity: Python API, offline GUI and eight-view brain networks
3
+ Version: 0.4.0
4
+ Summary: Local fMRI connectivity, brain graphs and native hypergraphs with a Python API and offline GUI
5
5
  Project-URL: Homepage, https://github.com/hanxiangmin/brainfc
6
6
  Project-URL: Source, https://github.com/hanxiangmin/brainfc
7
7
  Project-URL: Issues, https://github.com/hanxiangmin/brainfc/issues
@@ -10,6 +10,7 @@ Author: BrainFC contributors
10
10
  License-Expression: Apache-2.0
11
11
  License-File: LICENSE
12
12
  License-File: NOTICE
13
+ License-File: src/brainfc/network/web/static/THIRD_PARTY_NOTICES.txt
13
14
  License-File: src/brainfc/web/static/THIRD_PARTY_NOTICES.txt
14
15
  Keywords: bids,connectome,fmri,functional-connectivity,neuroimaging
15
16
  Classifier: Development Status :: 3 - Alpha
@@ -22,21 +23,27 @@ Classifier: Programming Language :: Python :: 3.12
22
23
  Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
23
24
  Requires-Python: >=3.11
24
25
  Requires-Dist: fastapi>=0.115
26
+ Requires-Dist: h5py>=3.10
25
27
  Requires-Dist: matplotlib>=3.8
28
+ Requires-Dist: networkx>=3.2
26
29
  Requires-Dist: nibabel>=5.2
27
30
  Requires-Dist: nilearn<0.15,>=0.14
28
31
  Requires-Dist: numpy>=1.26
29
32
  Requires-Dist: pandas>=2.1
33
+ Requires-Dist: platformdirs>=4
30
34
  Requires-Dist: python-multipart>=0.0.20
31
35
  Requires-Dist: scikit-image>=0.23
32
36
  Requires-Dist: scikit-learn>=1.4
33
37
  Requires-Dist: scipy>=1.12
38
+ Requires-Dist: statsmodels>=0.14
34
39
  Requires-Dist: uvicorn>=0.30
40
+ Requires-Dist: xgi>=0.9
35
41
  Provides-Extra: dev
36
42
  Requires-Dist: build>=1.2; extra == 'dev'
37
43
  Requires-Dist: hatchling>=1.27; extra == 'dev'
38
44
  Requires-Dist: httpx>=0.27; extra == 'dev'
39
45
  Requires-Dist: markdown>=3.6; extra == 'dev'
46
+ Requires-Dist: pydicom>=3; extra == 'dev'
40
47
  Requires-Dist: pytest>=8; extra == 'dev'
41
48
  Requires-Dist: pyyaml>=6; extra == 'dev'
42
49
  Requires-Dist: ruff>=0.9; extra == 'dev'
@@ -49,16 +56,16 @@ Description-Content-Type: text/markdown
49
56
 
50
57
  **fMRI → ROI time series → functional connectivity → matrix, eight-view and interactive 3D reports.**
51
58
 
52
- BrainFC is a Python library with a command-line interface and a local graphical interface. Both interfaces use the same processing core. The default installation includes the GUI and an offline API manual. Python 3.11 or newer is required; ordinary users do not need Node.js.
59
+ Functional connectivity, brain graphs and native hypergraphs in one Python package, with a local GUI and complete API. Requires Python 3.11+.
53
60
 
54
61
  ## Install and launch
55
62
 
56
63
  ```shell
57
- pip install brainfc
64
+ pip install -U brainfc
58
65
  brainfc serve
59
66
  ```
60
67
 
61
- The interface opens at `http://127.0.0.1:8766`. Choose the built-in demo to generate synthetic NIfTI inputs and a complete report without downloading participant data. The offline manual is available at `/reference/` and the HTTP API schema at `/docs`.
68
+ Choose **打开真实样例** to try the bundled rest01 example. No files or parameters to supply.
62
69
 
63
70
  ## Python API
64
71
 
@@ -95,3 +102,15 @@ Raw DICOM/BIDS spatial preprocessing requires external dcm2niix/fMRIPrep. BrainF
95
102
  - [Source code and issues](https://github.com/hanxiangmin/brainfc)
96
103
 
97
104
  Licensed under Apache-2.0. The 3D viewer is adapted from Hyper-Brain; BrainFC runs independently. Dataset and atlas licenses remain with their original providers.
105
+
106
+ ## Network analysis
107
+
108
+ Choose **进入网络分析** after extraction to explore graphs, native hypergraphs and network metrics. The matrix and ROI mapping transfer automatically.
109
+
110
+ ```python
111
+ from brainfc.network import AnalysisConfig
112
+
113
+ network = result.analyze_network(AnalysisConfig(k=5))
114
+ ```
115
+
116
+ [Network guide](https://github.com/hanxiangmin/brainfc/blob/main/docs/network-analysis.md) · [Compatibility guide](https://github.com/hanxiangmin/brainfc/blob/main/docs/hyper-brain-migration.md)
@@ -4,16 +4,16 @@
4
4
 
5
5
  **fMRI → ROI time series → functional connectivity → matrix, eight-view and interactive 3D reports.**
6
6
 
7
- BrainFC is a Python library with a command-line interface and a local graphical interface. Both interfaces use the same processing core. The default installation includes the GUI and an offline API manual. Python 3.11 or newer is required; ordinary users do not need Node.js.
7
+ Functional connectivity, brain graphs and native hypergraphs in one Python package, with a local GUI and complete API. Requires Python 3.11+.
8
8
 
9
9
  ## Install and launch
10
10
 
11
11
  ```shell
12
- pip install brainfc
12
+ pip install -U brainfc
13
13
  brainfc serve
14
14
  ```
15
15
 
16
- The interface opens at `http://127.0.0.1:8766`. Choose the built-in demo to generate synthetic NIfTI inputs and a complete report without downloading participant data. The offline manual is available at `/reference/` and the HTTP API schema at `/docs`.
16
+ Choose **打开真实样例** to try the bundled rest01 example. No files or parameters to supply.
17
17
 
18
18
  ## Python API
19
19
 
@@ -50,3 +50,15 @@ Raw DICOM/BIDS spatial preprocessing requires external dcm2niix/fMRIPrep. BrainF
50
50
  - [Source code and issues](https://github.com/hanxiangmin/brainfc)
51
51
 
52
52
  Licensed under Apache-2.0. The 3D viewer is adapted from Hyper-Brain; BrainFC runs independently. Dataset and atlas licenses remain with their original providers.
53
+
54
+ ## Network analysis
55
+
56
+ Choose **进入网络分析** after extraction to explore graphs, native hypergraphs and network metrics. The matrix and ROI mapping transfer automatically.
57
+
58
+ ```python
59
+ from brainfc.network import AnalysisConfig
60
+
61
+ network = result.analyze_network(AnalysisConfig(k=5))
62
+ ```
63
+
64
+ [Network guide](https://github.com/hanxiangmin/brainfc/blob/main/docs/network-analysis.md) · [Compatibility guide](https://github.com/hanxiangmin/brainfc/blob/main/docs/hyper-brain-migration.md)
@@ -6,28 +6,14 @@
6
6
 
7
7
  ## Install
8
8
 
9
- Python **3.11+**. The default installation includes the local GUI and offline manual.
9
+ Requires **Python 3.11+**.
10
10
 
11
11
  ```bash
12
- pip install brainfc
12
+ pip install -U brainfc
13
13
  brainfc serve
14
14
  ```
15
15
 
16
- Open `http://127.0.0.1:8766` and choose the built-in demo to try the pipeline with synthetic signals. No participant download or Node.js installation is needed. The current GUI and full reference manual are in Chinese; Python API docstrings are in English.
17
-
18
- <details>
19
- <summary>Install from source / run a command-line demo</summary>
20
-
21
- ```bash
22
- git clone https://github.com/hanxiangmin/brainfc.git
23
- cd brainfc
24
- pip install .
25
- brainfc demo --output demo-001
26
- ```
27
-
28
- Use the source installation for development or a version not yet uploaded to PyPI. The local manual is at `/reference/`; the HTTP schema is at `/docs`.
29
-
30
- </details>
16
+ Choose **打开真实样例** in the browser to try the bundled real example. No files or parameters to supply. The GUI is in Chinese; Python API docstrings are in English.
31
17
 
32
18
  ## Use
33
19
 
@@ -87,6 +73,26 @@ result.save("results/sub-01")
87
73
 
88
74
  [Runnable example](examples/quickstart.py) · [Batch example](examples/batch_derivatives.py) · [Python guide](docs/python-api.md) · [Complete API](docs/api-reference.md) · [CLI](docs/cli-reference.md) · [HTTP API](docs/http-api.md)
89
75
 
76
+ ## Graphs and native hypergraphs
77
+
78
+ Continue with the extracted `result`:
79
+
80
+ ```python
81
+ from brainfc.network import AnalysisConfig
82
+ from brainfc.network.export import export_result
83
+
84
+ # result is the Connectome returned by extract_connectome above.
85
+ network = result.analyze_network(AnalysisConfig(
86
+ graph_method="density", density=0.1,
87
+ hypergraph_method="multiscale", hypergraph_ks=[5, 10],
88
+ ))
89
+ export_result(network, "network-result.zip")
90
+ ```
91
+
92
+ Choose **进入网络分析** after extraction. The matrix, ROI order, coordinates and processing records transfer automatically.
93
+
94
+ [Network guide](docs/network-analysis.md) · [Runnable example](examples/network_analysis.py)
95
+
90
96
  ## Features
91
97
 
92
98
  | Capability | What it provides |
@@ -105,7 +111,7 @@ result.save("results/sub-01")
105
111
  <tr><td><a href="docs/assets/matrix.png"><img src="docs/assets/matrix.png" alt="Full Schaefer-100 matrix"></a></td><td><a href="docs/assets/eight-views.png"><img src="docs/assets/eight-views.png" alt="Eight projections of the same displayed connections"></a></td></tr>
106
112
  </table>
107
113
 
108
- These outputs use the **Schaefer 100 atlas, a reference brain, and synthetic fMRI signals**, not patient findings. The header is conceptual artwork. Display thresholds never change the full numerical matrix. Without an anatomical reference, the display surface is an atlas-coverage envelope.
114
+ These results use the [de-identified rest01 example](docs/real-example.md): 100 ROIs and 145 retained frames. The matrix preserves complete Pearson correlations; 3D and eight-view displays share the selected edges. The header is conceptual artwork. [Processing and QC](docs/real-example.md) · [Privacy review](docs/privacy-review.md)
109
115
 
110
116
  ## Processing workflow
111
117
 
@@ -7,34 +7,20 @@
7
7
  <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache--2.0-c18a49" alt="Apache-2.0"></a>
8
8
  </p>
9
9
 
10
- <p align="center"><b>把脑影像变成可计算、可检查、可交互的功能连接。</b><br>一个 Python 库,同时提供本地图形界面、命令行与完整 API。</p>
10
+ <p align="center"><b>把脑影像变成可计算、可检查、可交互的功能连接。</b><br>一个 Python 库,贯通功能连接、普通图、原生超图与网络统计;提供本地图形界面、命令行与完整 API。</p>
11
11
 
12
12
  <p align="center"><b>中文</b> · <a href="README.en.md">English</a> · <a href="docs/index.md">使用文档</a> · <a href="docs/api-reference.md">全部 API</a> · <a href="docs/datasets.md">数据下载指南</a></p>
13
13
 
14
14
  ## 安装
15
15
 
16
- 需要 **Python 3.11+**。一次安装即包含计算核心、网页界面和离线手册。
16
+ 需要 **Python 3.11+**。
17
17
 
18
18
  ```bash
19
- pip install brainfc
19
+ pip install -U brainfc
20
20
  brainfc serve
21
21
  ```
22
22
 
23
- 浏览器打开 `http://127.0.0.1:8766`,点击 **试用演示** 即可体验完整流程。演示使用合成信号,不需要准备数据;日常使用不需要 Node.js。
24
-
25
- <details>
26
- <summary>从 GitHub 源码安装 / 命令行演示</summary>
27
-
28
- ```bash
29
- git clone https://github.com/hanxiangmin/brainfc.git
30
- cd brainfc
31
- pip install .
32
- brainfc demo --output demo-001
33
- ```
34
-
35
- 源码安装适用于开发版,以及尚未上传到 PyPI 的版本。离线手册位于本地服务的 `/reference/`,HTTP 接口说明位于 `/docs`。更多环境与批处理说明见 [快速上手](docs/quickstart.md)。
36
-
37
- </details>
23
+ 启动后点击 **打开真实样例** 即可体验,无需准备数据或填写参数。
38
24
 
39
25
  ## 使用
40
26
 
@@ -42,7 +28,7 @@ brainfc demo --output demo-001
42
28
 
43
29
  **选择数据 → 确认方案 → 开始处理。**
44
30
 
45
- 界面识别文件类型,读取可用的 TR、空间和配套文件;只有无法确定的信息才需要补充。高级设置默认收起,后续步骤依次解锁。可选 ABIDE、ADNI、ADHD-200、MDD、PPMI 的资料预设,扫描元数据优先,参数仍需确认。
31
+ 上传自己的数据,界面会自动读取文件信息,提示需要确认的参数。
46
32
 
47
33
  ### 1. 已有脑区时间序列
48
34
 
@@ -84,7 +70,7 @@ result = extract_connectome(
84
70
  )
85
71
  ```
86
72
 
87
- 影像须已配准到声明的空间;图谱重采样不会代替配准。默认去趋势、标准化,不启用频带滤波或 FD 阈值删帧;需要时按上游处理记录设置。详细 [处理方法](docs/processing.md) 和 [参数默认值](docs/python-api.md#5-参数一览) 可逐项查阅。
73
+ 影像须已配准;去噪参数按上游处理记录设置。详见[处理方法](docs/processing.md)与[参数默认值](docs/python-api.md#5-参数一览)。
88
74
 
89
75
  ### 3. 可视化与导出
90
76
 
@@ -101,10 +87,29 @@ original_frames = result.sample_indices
101
87
  quality = result.qc
102
88
  ```
103
89
 
104
- `save()` 导出矩阵、时序、脑区与帧号、质量记录、处理来源、图片和离线交互报告;目标目录须为新目录。三维和八视图需要完整 ROI 坐标;自定义坐标须声明空间。
90
+ `save()` 保存完整结果和离线报告,目标目录须不存在。三维和八视图需要脑区坐标与空间信息。
105
91
 
106
92
  [可直接运行的完整示例](examples/quickstart.py) · [批处理示例](examples/batch_derivatives.py) · [Python 使用指南](docs/python-api.md) · [CLI](docs/cli-reference.md) · [HTTP API](docs/http-api.md)
107
93
 
94
+ ### 4. 继续构建图与原生超图
95
+
96
+ 接上文的 `result`:
97
+
98
+ ```python
99
+ from brainfc.network import AnalysisConfig
100
+ from brainfc.network.export import export_result
101
+
102
+ network = result.analyze_network(AnalysisConfig(
103
+ graph_method="density", density=0.1,
104
+ hypergraph_method="multiscale", hypergraph_ks=[5, 10],
105
+ ))
106
+ export_result(network, "network-result.zip")
107
+ ```
108
+
109
+ 界面中点击 **进入网络分析**,矩阵、坐标和处理记录自动带入。
110
+
111
+ [网络分析指南](docs/network-analysis.md) · [可运行示例](examples/network_analysis.py)
112
+
108
113
  ## 关键功能
109
114
 
110
115
  | 功能 | 可以做什么 |
@@ -114,6 +119,8 @@ quality = result.qc
114
119
  | **引导操作** | 按数据类别选择处理路径,自动读取可确认的元数据;数据集预设附官方来源。 |
115
120
  | **同步探索** | 矩阵定位脑区;三维与八视图共享阈值、连接上限及脑区/连接选择;前方脑区悬停名称。 |
116
121
  | **可追溯导出** | 原始帧号、ROI 顺序、参数、质量记录、软件版本与输入 SHA-256;保留完整正负连接。 |
122
+ | **图与原生超图** | 有符号图、密度/阈值/kNN/生成森林;FC-profile、多尺度、模板与自定义超边,保留原始 ID 和完整成员。 |
123
+ | **网络指标与统计** | 正连接路径指标、原生关联矩阵、独立被试两组比较、协变量 OLS/HC3 和 BH-FDR。 |
117
124
  | **本地运行** | Python、CLI、网页共用核心;数据在本机处理,报告可离线打开。 |
118
125
 
119
126
  ### 实际界面
@@ -125,15 +132,15 @@ quality = result.qc
125
132
  <tr><td><a href="docs/assets/matrix.png"><img src="docs/assets/matrix.png" alt="Schaefer 100 脑区完整相关矩阵"></a></td><td><a href="docs/assets/eight-views.png"><img src="docs/assets/eight-views.png" alt="同一组连接在八个解剖视角下的实际渲染"></a></td></tr>
126
133
  </table>
127
134
 
128
- 以上界面与矩阵来自 **Schaefer 100 图谱、参考脑和合成 fMRI 信号**,不代表患者结果。顶部为产品概念插画。显示阈值只筛选画面中的连接,不改变完整数值矩阵;没有解剖参考时,显示表面为图谱覆盖包络。
135
+ 以上结果来自[脱敏真实样例 rest01](docs/real-example.md):100 个脑区、145 个时间点。矩阵保留完整 Pearson 相关;三维与八视图共享筛选连接。顶部为产品概念插画。[处理与质控](docs/real-example.md) · [隐私核查](docs/privacy-review.md)
129
136
 
130
- ## 详细处理流程
137
+ ## 影像到功能连接的处理流程
131
138
 
132
139
  ![BrainFC 完整处理流程:格式与空间检查、时序提取、联合清理、连接计算、导出与同步视图;使用 archify skill 绘制](docs/assets/processing.png)
133
140
 
134
141
  [查看清晰矢量图](docs/assets/processing.svg) · [下载交互流程图 HTML](docs/assets/processing.html) · [可编辑流程定义](docs/assets/processing.dataflow.json) · [逐步方法说明](docs/processing.md)
135
142
 
136
- ROI 时序文件可从“统一 ROI 时序”进入;原始影像先走外部 **dcm2niix → BIDS → fMRIPrep**,检查报告后重新导入。BrainFC 的 pip 包不包含这些外部工具,也不自行完成空间预处理;完整外部原始数据链的验证状态见 [验证记录](docs/validation-v0.3.0.md)。
143
+ ROI 时序可直接导入。原始影像需先用外部 **dcm2niix / fMRIPrep** 完成空间预处理,再交由 BrainFC 提取功能连接。
137
144
 
138
145
  | 想进一步了解 | 文档入口 |
139
146
  | :--- | :--- |
@@ -147,4 +154,4 @@ ROI 时序文件可从“统一 ROI 时序”进入;原始影像先走外部 *
147
154
 
148
155
  Copyright © 2026 BrainFC contributors. 代码采用 [Apache License 2.0](LICENSE),引用信息见 [CITATION.cff](CITATION.cff)。
149
156
 
150
- 计算核心基于 NumPy、SciPy、NiBabel、Nilearn 和 scikit-learn;可视化使用 Matplotlib、React 和 Three.js。三维组件改编自 [Hyper-Brain](https://github.com/hanxiangmin/Hyper-Brain),BrainFC 可独立安装运行。流程图使用 [archify skill](https://github.com/tt-a1i/archify) 绘制;第三方许可见 [NOTICE](NOTICE) 和 [完整声明](src/brainfc/web/static/THIRD_PARTY_NOTICES.txt)。图谱与数据集遵循各自提供方的许可,本仓库不分发受试者数据。
157
+ 计算核心基于 NumPy、SciPy、NiBabel、Nilearn 和 scikit-learn;可视化使用 Matplotlib、React 和 Three.js。网络与超图分析由 [Hyper-Brain](https://github.com/hanxiangmin/Hyper-Brain) 合入,源码及第三方许可保留;详见[来源和迁移说明](docs/hyper-brain-migration.md)。流程图使用 [archify skill](https://github.com/tt-a1i/archify) 绘制;第三方许可见 [NOTICE](NOTICE) 和 [完整声明](src/brainfc/web/static/THIRD_PARTY_NOTICES.txt)。图谱与数据集遵循各自提供方的许可,本仓库仅提供经授权并核查的 rest01 衍生样例,不分发原始 DICOM 或个体 T1/BOLD 强度图像。