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.
- {brainfc-0.3.0 → brainfc-0.4.0}/.gitattributes +2 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/.github/workflows/ci.yml +7 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/.gitignore +2 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/CHANGELOG.md +14 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/CITATION.cff +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/CONTRIBUTING.md +5 -2
- brainfc-0.4.0/NOTICE +28 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/PKG-INFO +24 -5
- {brainfc-0.3.0 → brainfc-0.4.0}/PYPI.md +15 -3
- {brainfc-0.3.0 → brainfc-0.4.0}/README.en.md +24 -18
- {brainfc-0.3.0 → brainfc-0.4.0}/README.md +32 -25
- brainfc-0.4.0/docs/api-inventory.json +1066 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/api-reference.md +799 -19
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/README.md +1 -1
- brainfc-0.4.0/docs/assets/eight-views.png +0 -0
- brainfc-0.4.0/docs/assets/matrix-provenance.json +17 -0
- brainfc-0.4.0/docs/assets/matrix.png +0 -0
- brainfc-0.4.0/docs/assets/viewer.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/cli-reference.md +34 -7
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/http-api.md +2 -2
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/http-reference.md +84 -2
- brainfc-0.4.0/docs/hyper-brain-migration.md +36 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/index.md +4 -0
- brainfc-0.4.0/docs/network/api.md +105 -0
- brainfc-0.4.0/docs/network/implementation-contract.md +33 -0
- brainfc-0.4.0/docs/network/input-formats.md +30 -0
- brainfc-0.4.0/docs/network/methods.md +29 -0
- brainfc-0.4.0/docs/network/third-party.md +36 -0
- brainfc-0.4.0/docs/network/tool-catalogue.md +120 -0
- brainfc-0.4.0/docs/network/upstream.json +102 -0
- brainfc-0.4.0/docs/network/validation-0.2.1.md +23 -0
- brainfc-0.4.0/docs/network/validation-0.2.md +65 -0
- brainfc-0.4.0/docs/network/validation-0.3.0.md +33 -0
- brainfc-0.4.0/docs/network/validation.md +56 -0
- brainfc-0.4.0/docs/network/viewer-atlases.md +84 -0
- brainfc-0.4.0/docs/network/visual-media.md +46 -0
- brainfc-0.4.0/docs/network-analysis.md +137 -0
- brainfc-0.4.0/docs/network-http-reference.md +901 -0
- brainfc-0.4.0/docs/network-openapi.json +827 -0
- {brainfc-0.3.0/src/brainfc/web/static/reference → brainfc-0.4.0/docs}/openapi.json +86 -2
- brainfc-0.4.0/docs/privacy-review.md +23 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/python-api.md +2 -2
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/quickstart.md +8 -6
- brainfc-0.4.0/docs/real-example.md +57 -0
- brainfc-0.4.0/docs/release.md +53 -0
- brainfc-0.4.0/docs/uih-metadata.md +24 -0
- brainfc-0.4.0/docs/validation-v0.4.0.md +24 -0
- brainfc-0.4.0/docs/web-theme.md +18 -0
- brainfc-0.4.0/examples/network_analysis.py +28 -0
- brainfc-0.4.0/examples/reconcile_uih_sidecar.py +94 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/package-lock.json +2 -2
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/package.json +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/Workflow.tsx +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/main.tsx +14 -4
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/style.css +135 -103
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/viewerTypes.ts +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-release.cjs +51 -5
- brainfc-0.4.0/network-frontend/README.md +17 -0
- brainfc-0.4.0/network-frontend/index.html +17 -0
- brainfc-0.4.0/network-frontend/licenses/apache-2.0-roboto.txt +201 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-1.18.1.txt +31 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-bitshuffle.txt +21 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-fastlz.txt +24 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-lz4.txt +32 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-snappy.txt +28 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-stdint.txt +29 -0
- brainfc-0.4.0/network-frontend/licenses/blosc-zlib.txt +22 -0
- brainfc-0.4.0/network-frontend/licenses/fastsurfer-attribution.txt +13 -0
- brainfc-0.4.0/network-frontend/licenses/ieee754.txt +11 -0
- brainfc-0.4.0/network-frontend/licenses/lz4-1.9.2.txt +24 -0
- brainfc-0.4.0/network-frontend/licenses/maplibre-4.7.1.txt +116 -0
- brainfc-0.4.0/network-frontend/licenses/niivue-0.67.0.txt +25 -0
- brainfc-0.4.0/network-frontend/licenses/sources.json +109 -0
- brainfc-0.4.0/network-frontend/licenses/zstd-1.5.5.txt +30 -0
- brainfc-0.4.0/network-frontend/package-lock.json +2146 -0
- brainfc-0.4.0/network-frontend/package.json +34 -0
- brainfc-0.4.0/network-frontend/scripts/capture-gallery.cjs +73 -0
- brainfc-0.4.0/network-frontend/scripts/capture-orbit.cjs +82 -0
- brainfc-0.4.0/network-frontend/scripts/fetch-license-sources.mjs +30 -0
- brainfc-0.4.0/network-frontend/scripts/third-party-notices.mjs +148 -0
- brainfc-0.4.0/network-frontend/src/Anatomy.tsx +148 -0
- brainfc-0.4.0/network-frontend/src/App.tsx +1439 -0
- brainfc-0.4.0/network-frontend/src/AtlasImport.tsx +177 -0
- brainfc-0.4.0/network-frontend/src/AtlasSlices.tsx +80 -0
- brainfc-0.4.0/network-frontend/src/BrainScene.tsx +1204 -0
- brainfc-0.4.0/network-frontend/src/Plot.tsx +79 -0
- brainfc-0.4.0/network-frontend/src/Results.tsx +1443 -0
- brainfc-0.4.0/network-frontend/src/Statistics.tsx +299 -0
- brainfc-0.4.0/network-frontend/src/main.tsx +30 -0
- brainfc-0.4.0/network-frontend/src/styles.css +2356 -0
- brainfc-0.4.0/network-frontend/src/types.ts +123 -0
- brainfc-0.4.0/network-frontend/src/vendor.d.ts +4 -0
- brainfc-0.4.0/network-frontend/src/viewer.css +869 -0
- brainfc-0.4.0/network-frontend/src/viewerAppearance.ts +79 -0
- brainfc-0.4.0/network-frontend/src/viewerTypes.ts +166 -0
- brainfc-0.4.0/network-frontend/tests/viewer.test.cjs +69 -0
- brainfc-0.4.0/network-frontend/tsconfig.json +15 -0
- brainfc-0.4.0/network-frontend/vite.config.ts +15 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/pyproject.toml +7 -6
- {brainfc-0.3.0 → brainfc-0.4.0}/scripts/check_release.py +36 -6
- {brainfc-0.3.0 → brainfc-0.4.0}/scripts/generate_reference.py +36 -6
- brainfc-0.4.0/scripts/render_example_matrix.py +100 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/scripts/smoke_wheel.py +12 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/_version.py +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/cli.py +41 -4
- brainfc-0.4.0/src/brainfc/data/rest01/README.md +24 -0
- brainfc-0.4.0/src/brainfc/data/rest01/confounds.tsv +151 -0
- brainfc-0.4.0/src/brainfc/data/rest01/example.json +125 -0
- brainfc-0.4.0/src/brainfc/data/rest01/privacy-review.json +40 -0
- brainfc-0.4.0/src/brainfc/data/rest01/reference_mask.nii.gz +0 -0
- brainfc-0.4.0/src/brainfc/data/rest01/rois.tsv +101 -0
- brainfc-0.4.0/src/brainfc/data/rest01/timeseries.json +1 -0
- brainfc-0.4.0/src/brainfc/data/rest01/timeseries.tsv +151 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/demo.py +34 -7
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/models.py +48 -22
- brainfc-0.4.0/src/brainfc/network/__init__.py +13 -0
- brainfc-0.4.0/src/brainfc/network/__main__.py +4 -0
- brainfc-0.4.0/src/brainfc/network/analysis.py +83 -0
- brainfc-0.4.0/src/brainfc/network/atlas.py +461 -0
- brainfc-0.4.0/src/brainfc/network/atlas_sources.py +220 -0
- brainfc-0.4.0/src/brainfc/network/bridge.py +107 -0
- brainfc-0.4.0/src/brainfc/network/cli.py +72 -0
- brainfc-0.4.0/src/brainfc/network/connectivity.py +120 -0
- brainfc-0.4.0/src/brainfc/network/export.py +135 -0
- brainfc-0.4.0/src/brainfc/network/graph.py +213 -0
- brainfc-0.4.0/src/brainfc/network/hypergraph.py +238 -0
- brainfc-0.4.0/src/brainfc/network/io.py +460 -0
- brainfc-0.4.0/src/brainfc/network/statistics.py +161 -0
- brainfc-0.4.0/src/brainfc/network/types.py +173 -0
- brainfc-0.4.0/src/brainfc/network/view.py +85 -0
- brainfc-0.4.0/src/brainfc/network/visualization.py +74 -0
- brainfc-0.4.0/src/brainfc/network/web/__init__.py +1 -0
- brainfc-0.4.0/src/brainfc/network/web/app.py +222 -0
- brainfc-0.4.0/src/brainfc/network/web/atlases.py +158 -0
- brainfc-0.4.0/src/brainfc/network/web/limits.py +45 -0
- brainfc-0.4.0/src/brainfc/network/web/reference.py +51 -0
- brainfc-0.4.0/src/brainfc/network/web/static/THIRD_PARTY_NOTICES.txt +1600 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/AtlasSlices-DN2TfyxA.js +2 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/Plot-DK7tZBcO.js +3858 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/Results-Dj-tACiK.js +4281 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/Results-KnpfgmSb.css +1 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/blosc-eOvwLB0b.js +17 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/chunk-INHXZS53-D3tQiqtZ.js +1 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/index-C6XUpY6_.js +231 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/index-DmwERFJy.css +1 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/index-sxmwZ7P5.js +2340 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/lz4-DMxY7r4t.js +15 -0
- brainfc-0.4.0/src/brainfc/network/web/static/assets/zstd-qZ8jC7Re.js +15 -0
- brainfc-0.4.0/src/brainfc/network/web/static/index.html +18 -0
- brainfc-0.4.0/src/brainfc/network/web/storage.py +121 -0
- brainfc-0.4.0/src/brainfc/network/web/worker.py +116 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/app.py +82 -7
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/schemas.py +3 -0
- brainfc-0.4.0/src/brainfc/web/static/app.css +1 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/app.js +31 -31
- brainfc-0.4.0/src/brainfc/web/static/reference/api-inventory.json +1066 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/api-reference.html +516 -20
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/cli-reference.html +31 -7
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/datasets.html +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/formats.html +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/http-api.html +4 -4
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/http-reference.html +80 -2
- brainfc-0.4.0/src/brainfc/web/static/reference/hyper-brain-migration.html +60 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/index.html +4 -2
- brainfc-0.4.0/src/brainfc/web/static/reference/network/api.html +105 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/implementation-contract.html +30 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/input-formats.html +20 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/methods.html +15 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/third-party.html +82 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/tool-catalogue.html +573 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/upstream.json +102 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/validation-0.2.1.html +20 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/validation-0.2.html +50 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/validation-0.3.0.html +29 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/validation.html +89 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/viewer-atlases.html +113 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network/visual-media.html +57 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network-analysis.html +130 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network-http-reference.html +832 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/network-openapi.json +827 -0
- {brainfc-0.3.0/docs → brainfc-0.4.0/src/brainfc/web/static/reference}/openapi.json +86 -2
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/outputs.html +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/presets-and-workflow.html +1 -1
- brainfc-0.4.0/src/brainfc/web/static/reference/privacy-review.html +16 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/processing.html +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/python-api.html +3 -3
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/quickstart.html +8 -7
- brainfc-0.4.0/src/brainfc/web/static/reference/real-example.html +66 -0
- brainfc-0.4.0/src/brainfc/web/static/reference/release.html +64 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/research.html +1 -1
- brainfc-0.4.0/src/brainfc/web/static/reference/uih-metadata.html +45 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation-v0.2.0.html +1 -1
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation-v0.3.0.html +1 -1
- brainfc-0.4.0/src/brainfc/web/static/reference/validation-v0.4.0.html +22 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation.html +1 -1
- brainfc-0.4.0/src/brainfc/web/static/reference/web-theme.html +46 -0
- brainfc-0.4.0/src/hicbrain/__init__.py +3 -0
- brainfc-0.4.0/src/hicbrain/__main__.py +4 -0
- brainfc-0.4.0/src/hicbrain/analysis.py +5 -0
- brainfc-0.4.0/src/hicbrain/atlas.py +5 -0
- brainfc-0.4.0/src/hicbrain/atlas_sources.py +5 -0
- brainfc-0.4.0/src/hicbrain/cli.py +5 -0
- brainfc-0.4.0/src/hicbrain/connectivity.py +5 -0
- brainfc-0.4.0/src/hicbrain/export.py +5 -0
- brainfc-0.4.0/src/hicbrain/graph.py +5 -0
- brainfc-0.4.0/src/hicbrain/hypergraph.py +5 -0
- brainfc-0.4.0/src/hicbrain/io.py +5 -0
- brainfc-0.4.0/src/hicbrain/statistics.py +5 -0
- brainfc-0.4.0/src/hicbrain/types.py +5 -0
- brainfc-0.4.0/src/hicbrain/view.py +5 -0
- brainfc-0.4.0/src/hicbrain/visualization.py +5 -0
- brainfc-0.4.0/src/hicbrain/web/__init__.py +1 -0
- brainfc-0.4.0/src/hicbrain/web/app.py +5 -0
- brainfc-0.4.0/src/hicbrain/web/atlases.py +5 -0
- brainfc-0.4.0/src/hicbrain/web/limits.py +5 -0
- brainfc-0.4.0/src/hicbrain/web/reference.py +5 -0
- brainfc-0.4.0/src/hicbrain/web/storage.py +5 -0
- brainfc-0.4.0/src/hicbrain/web/worker.py +5 -0
- brainfc-0.4.0/tests/network/__init__.py +0 -0
- brainfc-0.4.0/tests/network/test_analysis_web.py +167 -0
- brainfc-0.4.0/tests/network/test_atlas_view.py +294 -0
- brainfc-0.4.0/tests/network/test_connectivity.py +78 -0
- brainfc-0.4.0/tests/network/test_io.py +217 -0
- brainfc-0.4.0/tests/network/test_resource_contract.py +217 -0
- brainfc-0.4.0/tests/network/test_statistics.py +118 -0
- brainfc-0.4.0/tests/network/test_structures.py +141 -0
- brainfc-0.4.0/tests/test_example_release_scope.py +17 -0
- brainfc-0.4.0/tests/test_network_bridge.py +116 -0
- brainfc-0.4.0/tests/test_real_example.py +38 -0
- brainfc-0.4.0/tests/test_uih_review.py +85 -0
- brainfc-0.4.0/tests/test_web.py +55 -0
- brainfc-0.3.0/NOTICE +0 -19
- brainfc-0.3.0/docs/api-inventory.json +0 -434
- brainfc-0.3.0/docs/assets/eight-views.png +0 -0
- brainfc-0.3.0/docs/assets/matrix.png +0 -0
- brainfc-0.3.0/docs/assets/viewer.png +0 -0
- brainfc-0.3.0/docs/release.md +0 -89
- brainfc-0.3.0/src/brainfc/web/static/app.css +0 -1
- brainfc-0.3.0/src/brainfc/web/static/reference/api-inventory.json +0 -434
- brainfc-0.3.0/src/brainfc/web/static/reference/release.html +0 -84
- brainfc-0.3.0/tests/test_web.py +0 -25
- {brainfc-0.3.0 → brainfc-0.4.0}/.github/ISSUE_TEMPLATE/bug.yml +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/.github/pull_request_template.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/.github/workflows/publish.yml +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/LICENSE +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/SECURITY.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/ARCHIFY-LICENSE +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/brainfc-hero.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/hero-prompt.txt +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.dataflow.json +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.html +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.receipt.json +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/assets/processing.svg +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/datasets.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/eight-views-v02.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/formats.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/interface-preview.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/outputs.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/presets-and-workflow.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/processing.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/requirements-tested-windows-py312.txt +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/research.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/validation-v0.2.0.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/validation-v0.3.0.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/docs/validation.md +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/batch_derivatives.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/config-preprocessed.json +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/download_adhd_sample.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/http_client.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/prepare_atlas_demo.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/quickstart.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/roi_timeseries.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/examples/validate_real_adhd.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/capture-demo.cjs +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/capture-readme.cjs +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/licenses.mjs +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/EightViews.tsx +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/display.ts +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/BrainScene.tsx +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/types.ts +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/src/vendor/viewerAppearance.ts +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-revision.cjs +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-ui.cjs +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/test-workflow-branches.cjs +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/tsconfig.json +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/frontend/vite.config.ts +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/scripts/package_release.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/__init__.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/__main__.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/atlases.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/export.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/imaging.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/io.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/pipeline.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/plotting.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/preprocessing.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/presets.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/__init__.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/THIRD_PARTY_NOTICES.txt +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/index.html +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/eight-views-v02.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/interface-preview.png +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/web/static/reference/validation-v0.2.1.html +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/src/brainfc/workflow.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_formats.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_pipeline.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_release_api.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_surface.py +0 -0
- {brainfc-0.3.0 → brainfc-0.4.0}/tests/test_workflow.py +0 -0
- {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:
|
|
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
|
-
-
|
|
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.
|
|
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
|
-
|
|
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`
|
|
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.
|
|
4
|
-
Summary: Local fMRI
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
31
|
+
上传自己的数据,界面会自动读取文件信息,提示需要确认的参数。
|
|
46
32
|
|
|
47
33
|
### 1. 已有脑区时间序列
|
|
48
34
|
|
|
@@ -84,7 +70,7 @@ result = extract_connectome(
|
|
|
84
70
|
)
|
|
85
71
|
```
|
|
86
72
|
|
|
87
|
-
|
|
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()`
|
|
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
|
-
|
|
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
|

|
|
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
|
|
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
|
|
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 强度图像。
|