Skip to content

Commit

Permalink
Merge pull request #134 from bclenet/packaging
Browse files Browse the repository at this point in the history
Packaging the visualizer
  • Loading branch information
cmaumet authored Oct 8, 2024
2 parents 05d9728 + ab123cb commit 87fdbbb
Show file tree
Hide file tree
Showing 5 changed files with 174 additions and 5 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ venv*
venv3.11/
.idea/*
.pytest_cache/*
build/*
*.egg-info
38 changes: 37 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ Camille Maumet ([@cmaumet](https://github.com/cmaumet)) and Satrajit Ghosh ([@sa
- Cyril Regan ([@cyril-data](https://github.com/cyril-data))<a href="https://github.com/bids-standard/BEP028_BIDSprov/commits?author=cyril-data" title="Code">💻</a><a href="https://github.com/bids-standard/BEP028_BIDSprov/pulls?q=is%3Apr+reviewed-by%3Acyril-data" title="Reviewed Pull Requests">👀</a><a href="https://github.com/bids-standard/BEP028_BIDSprov/commits?author=cyril-data" title="Documentation">📖</a>
<a href="https://github.com/bids-standard/BEP028_BIDSprov/issues?q=author%3Acyril-data" title="Bug reports">🐛</a>

- Boris Clénet ([@bclenet](https://github.com/bclenet))<a href="https://github.com/bids-standard/BEP028_BIDSprov/commits?author=bclenet" title="Code">💻</a><a href="https://github.com/bids-standard/BEP028_BIDSprov/commits?author=bclenet" title="Documentation">📖</a><a href="https://github.com/bids-standard/BEP028_BIDSprov/issues?q=author%3Abclenet" title="Bug reports">🐛</a>

This project follows the
[all-contributors](https://github.com/all-contributors/all-contributors)
specification. Contributions of any kind welcome!
Expand Down Expand Up @@ -80,7 +82,41 @@ Mature building blocks of NIDM:
[New features (to be included)](new_features.md)


## Run parsers on the SPM, FSL and AFNI data
## Using the code

### Visualize your BIDSprov data

To visualize your BIDSprov data, perform the following steps :
1. [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the code inside a `BEP028_BIDSprov` directory, and cd into this directory :

```shell
git clone [email protected]:bids-standard/BEP028_BIDSprov.git
cd BEP028_BIDSprov
```

3. install the `bids_prov` python package :

```shell
pip install .
```

4. you should be able to launch the visualizer on your .jsonld files with the command `bids_prov_visualizer`

```shell
bids_prov_visualizer --input_file graph.jsonld --output_file graph.png

bids_prov -h
usage: bids_prov_visualizer [-h] --input_file INPUT_FILE [--output_file OUTPUT_FILE]

options:
-h, --help show this help message and exit
--input_file INPUT_FILE
input BIDSprov data as a .jsonld file
--output_file OUTPUT_FILE
output .png file showing BIDSprov graph
```

### Run parsers on the SPM, FSL and AFNI data

To obtain data in **bids-prov format**, you can use the developed parsers.
* [Tutorial](https://github.com/bids-standard/BEP028_BIDSprov/blob/master/bids_prov/README.md)
Expand Down
11 changes: 7 additions & 4 deletions bids_prov/visualize.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,15 @@ def main(filename: str, output_file=None, omit_details=True) -> None:
viz_jsonld11(jsonld11, output_file)


if __name__ == "__main__":

def entry_point():
""" A command line tool for the visualize module """
parser = argparse.ArgumentParser()
parser.add_argument("--input_file", type=str, default="res.jsonld", help="data jsonld file ")
parser.add_argument("--output_file", type=str, default="res.png", help="output dir where results are written")
parser.add_argument("--input_file", type=str, help="input BIDSprov data as a .jsonld file ", required=True)
parser.add_argument("--output_file", type=str, default="output_graph.png", help="output .png file showing BIDSprov graph")
opt = parser.parse_args()

main(opt.input_file, output_file=opt.output_file, omit_details=True)
# >> python -m bids_prov.visualize --input_file ./res_temp.jsonld --output_file res.png

if __name__ == "__main__":
entry_point()
72 changes: 72 additions & 0 deletions examples/from_parsers/context_2024_10_04_14h05m36s.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
Date : 2024_10_04_14h05m36s
Processing files...
file= nidmresults-examples/afni_alt_onesided_proc.sub_001
file= nidmresults-examples/afni_alt_onesided_proc.sub_001
file= nidmresults-examples/afni_bi_sided_t_test_proc.sub_001
file= nidmresults-examples/afni_bi_sided_t_test_proc.sub_001
file= nidmresults-examples/afni_clustconn_18_proc.sub_001
file= nidmresults-examples/afni_clustconn_18_proc.sub_001
file= nidmresults-examples/afni_clustconn_26_proc.sub_001
file= nidmresults-examples/afni_clustconn_26_proc.sub_001
file= nidmresults-examples/afni_con_f_proc.sub_001
file= nidmresults-examples/afni_con_f_proc.sub_001
file= nidmresults-examples/afni_default_proc.sub_001
file= nidmresults-examples/afni_default_proc.sub_001
file= nidmresults-examples/afni_gam_proc.sub_001
file= nidmresults-examples/afni_gam_proc.sub_001
file= nidmresults-examples/afni_hrf_gammadiff_proc.sub_001
file= nidmresults-examples/afni_hrf_gammadiff_proc.sub_001
file= nidmresults-examples/afni_hrf_tent_proc.sub_001
file= nidmresults-examples/afni_hrf_tent_proc.sub_001
file= nidmresults-examples/afni_other_template_proc.sub_001
file= nidmresults-examples/afni_other_template_proc.sub_001
file= nidmresults-examples/afni_thr_clustfwep05_proc.sub_001
file= nidmresults-examples/afni_thr_clustfwep05_proc.sub_001
file= nidmresults-examples/afni_thr_clustunck10_proc.sub_001
file= nidmresults-examples/afni_thr_clustunck10_proc.sub_001
file= nidmresults-examples/afni_thr_voxelfdrp05_proc.sub_001
file= nidmresults-examples/afni_thr_voxelfdrp05_proc.sub_001
file= nidmresults-examples/afni_thr_voxelunct4_proc.sub_001
file= nidmresults-examples/afni_thr_voxelunct4_proc.sub_001
file= nidmresults-examples/fsl_con_f_multiple_report_log.html
file= nidmresults-examples/fsl_con_f_report_log.html
file= nidmresults-examples/fsl_contrast_mask_report_log.html
file= nidmresults-examples/fsl_default_report_log.html
file= nidmresults-examples/fsl_full_examples001_report_log.html
file= nidmresults-examples/fsl_gamma_basis_report_log.html
file= nidmresults-examples/fsl_gaussian_report_log.html
file= nidmresults-examples/fsl_group_btw_report_log.html
file= nidmresults-examples/fsl_group_ols_report_log.html
file= nidmresults-examples/fsl_group_wls_report_log.html
file= nidmresults-examples/fsl_hrf_fir_report_log.html
file= nidmresults-examples/fsl_hrf_gammadiff_report_log.html
file= nidmresults-examples/fsl_motion_reg_der_report_log.html
file= nidmresults-examples/fsl_motion_reg_report_log.html
file= nidmresults-examples/fsl_thr_clustfwep05_report_log.html
file= nidmresults-examples/fsl_thr_voxelfwep05_report_log.html
file= nidmresults-examples/narps_do_02_pc_with_sign0.tcsh
file= nidmresults-examples/narps_do_02_pc_with_sign0.tcsh
file= nidmresults-examples/narps_do_04_make_imgs_A.tcsh
file= nidmresults-examples/narps_do_04_make_imgs_A.tcsh
file= nidmresults-examples/narps_do_13_view_zoom.tcsh
file= nidmresults-examples/narps_do_13_view_zoom.tcsh
file= nidmresults-examples/spm_2_t_test_batch.m
file= nidmresults-examples/spm_HRF_informed_basis_batch.m
file= nidmresults-examples/spm_con_f_batch.m
file= nidmresults-examples/spm_conjunction_batch.m
file= nidmresults-examples/spm_contrast_mask_batch.m
file= nidmresults-examples/spm_covariate_batch.m
file= nidmresults-examples/spm_default_batch.m
file= nidmresults-examples/spm_explicit_mask_batch.m
file= nidmresults-examples/spm_group_ols_batch.m
file= nidmresults-examples/spm_group_wls_batch.m
file= nidmresults-examples/spm_hrf_fir_batch.m
file= nidmresults-examples/spm_non_sphericity_batch.m
file= nidmresults-examples/spm_partial_conjunction_batch.m
file= nidmresults-examples/spm_temporal_derivative_batch.m
file= nidmresults-examples/spm_thr_clustfwep05_batch.m
file= nidmresults-examples/spm_thr_clustunck10_batch.m
file= nidmresults-examples/spm_thr_voxelfdrp05_batch.m
file= nidmresults-examples/spm_thr_voxelfwep05_batch.m
file= nidmresults-examples/spm_thr_voxelunct4_batch.m
End of processed files. Results in dir : 'examples/from_parsers'. Time required: 0:00:01.927037
56 changes: 56 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

[tool.poetry]
name = "bids_prov"
authors = [
"Camille Maumet",
"Satrajit Ghosh",
"Stefan Appelhoff",
"Chris Markiewicz",
"Yaroslav Halchenko",
"Jean-Baptiste Poline",
"Rémi Adon",
"Hermann Courteille",
"Thomas Betton",
"Cyril Regan",
"Boris Clénet"
]
description = "BIDS extension proposal 28 : BIDS Provenance"
version = "0.1.0"
readme = "README.md"
requires-python = ">=3.10, <3.11"
license = "CC-BY-4.0"
classifiers = [
"Intended Audience :: Science/Research",
"Programming Language :: Python :: 3",
"Topic :: Scientific/Engineering",
"Topic :: Scientific/Engineering :: Medical Science Apps."
]
include = ["bids_prov/visualize.py"]
exclude = ["bids_prov*"]

[tool.poetry.dependencies]
python = "^3.10.0"
beautifulsoup4 = "^4.12.3"
boutiques = "^0.5.26"
click = "^8.1.7"
deepdiff = "^7.0.1"
graphviz = "^0.20.3"
rdflib = "^7.0.0"
rdflib-jsonld = "^0.6.2"
prov = "^2.0.0"
pydot = "^2.0.0"
pyld = "^2.0.4"
pyyaml = "^6.0.1"
requests = "^2.32.3"

[tool.poetry.group.dev.dependencies]
black = "^24.4.2"
markdownify = "^0.12.1"
pre-commit = "^3.7.1"
pytest-cov = "^5.0.0"

[tool.poetry.scripts]
bids_prov_visualizer = "bids_prov.visualize:entry_point"

0 comments on commit 87fdbbb

Please sign in to comment.