Skip to content

abdominal phantom up to date #70

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 277 commits into from
Jul 24, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
31200f6
Moved the simple test run to separate file
Aug 31, 2023
35d339f
Simple test run of standardized algorithms
Aug 31, 2023
dfeb953
Standardized version of ivim_fit_method_biexp by IAR_LundUniversity
Aug 31, 2023
9e9bc31
Merge pull request #9 from oscarjalnefjord/brain_phantom
etpeterson Sep 1, 2023
781988b
Merge pull request #4 from ericpete/patch-1
etpeterson Sep 1, 2023
6578851
added data
oliverchampion Sep 8, 2023
bce913c
The osipi_fit method can now perform fits. What's left is to make it …
Sep 11, 2023
53c4143
We can now initiate a subclass from the superclass object by passing …
Sep 11, 2023
25d1b53
Changed testing so that all algorithms in the src/standardized folder…
Sep 11, 2023
67823d7
Parametrized the algorithm names in the testing. Made the search for …
Sep 13, 2023
666b158
data addition and configuration of LFS
DKuppens Sep 15, 2023
7074e54
update gitignore and gitattributes
DKuppens Sep 15, 2023
7562bfe
fix typo
DKuppens Sep 15, 2023
41e8f14
Merge branch 'main' into testing/wrapper
Sep 18, 2023
dc242aa
Final touches before PR
Sep 18, 2023
03b4494
Changed file name
Sep 18, 2023
d887994
Removed pycache
Sep 18, 2023
71d43a4
Added some np.asarray() to some variable definitions
Sep 19, 2023
1a0113c
Changed function name
Sep 19, 2023
584710e
Commented out unused check methods
Sep 19, 2023
f47993a
Added ADC and IVIM functions from NKI
KoenBaas Sep 21, 2023
f316a26
Update code_contributions_record.csv
oliverchampion Sep 21, 2023
fe8d2f9
Update code_contributions_record.csv
petravanhoudt Sep 22, 2023
2e318b2
Added check to see if root dir is in pytohnpath, if not, method is no…
Sep 25, 2023
ebdb475
Merge pull request #11 from OSIPI/data_addition
DKuppens Sep 28, 2023
0167af9
initial attempt at LSQ fitting from Amsterdam UMC, tests failing
DKuppens Sep 28, 2023
a36245f
Merge pull request #8 from OSIPI/testing/template_data
DKuppens Sep 28, 2023
e030c14
MATLAB code contribution
oscarjalnefjord Sep 28, 2023
ef23788
Moved the ETP algorithm due to errors in testing
Sep 29, 2023
514af86
Fixed error when importing, also removed an import
Sep 29, 2023
14f916a
Fixed import error
Sep 29, 2023
eb3bb53
Fixed calls to removed imports
Sep 29, 2023
84a9c56
Update code_contributions_record.csv
paulienvoorter Sep 29, 2023
d7fbb92
Patched up error with arrays of Nones
Sep 29, 2023
892be98
Squashed commit of the following:
Sep 29, 2023
95b2623
added code description PV_MUMC
paulienvoorter Oct 3, 2023
4093e32
Adapted my submissions to OsipiBase
Oct 9, 2023
2bbd603
Fixed bug in TopoPro
Oct 9, 2023
8b3867e
Added my submissions
Oct 9, 2023
6a91e49
Update PV_MUMC_biexp.py
paulienvoorter Oct 9, 2023
806517d
Merge pull request #12 from OSIPI/testing/wrapper
etpeterson Oct 10, 2023
d3e2011
Added bi-exp and segmented fit to wrapper
oliverchampion Oct 12, 2023
fbf5952
Add ETP Linear testing and add testing configuration
etpeterson Oct 16, 2023
aec5d4c
Update OGC_AmsterdamUMC_biexp_segmented.py
oliverchampion Oct 16, 2023
e4b26e8
Merge pull request #14 from OSIPI/main
oliverchampion Oct 16, 2023
70f1b88
Added missing algorithms file
etpeterson Oct 16, 2023
b408532
More advanced testing parameters
etpeterson Oct 17, 2023
a9209c8
added GU contributions to the record
oscarjalnefjord Oct 18, 2023
805bd4c
Removed accidentally placed 'f' that caused an error
KoenBaas Oct 19, 2023
69aec08
finished wrappers
oliverchampion Oct 19, 2023
b872d4d
Added Bayesian fit
oliverchampion Oct 19, 2023
bd933dd
Add files via upload
paulienvoorter Oct 20, 2023
4cdaaad
Update two_step_IVIM_fit.py
paulienvoorter Oct 20, 2023
3c9c2a6
Merge pull request #16 from OSIPI/Descriptives
oliverchampion Oct 20, 2023
9eb667a
Merge pull request #17 from OSIPI/main
oliverchampion Oct 20, 2023
7a34b82
Merge pull request #18 from OSIPI/main
oscarjalnefjord Oct 20, 2023
ab000a7
Added a synthetic test and control from the command line and saving o…
etpeterson Oct 23, 2023
13ad87f
Update code_contributions_record.csv
etpeterson Oct 23, 2023
3191052
Add multiple fits for statistics
etpeterson Oct 23, 2023
5700883
Minor bugfix. Moved an assignment a few lines
Oct 24, 2023
b494bed
Minor bugfix. Changed call to osipi_fit instead of ivim_fit
Oct 24, 2023
a7e1da3
Did some work on PV_MUMC. It now runs but the estimation errors are l…
Oct 24, 2023
0911c03
Call osipi_fit correctly
etpeterson Oct 24, 2023
9d211a0
Fixed bugs
oliverchampion Oct 24, 2023
9bee35f
Merge branch 'OGC_AmsterdamUMC_standardized' of https://github.com/OS…
oliverchampion Oct 24, 2023
929337f
Update LSQ_fitting.py
oliverchampion Oct 24, 2023
fbde4a5
Disabled synthetic tests by default, added some analysis
etpeterson Oct 25, 2023
01b7923
Removed YOUR_PATH from example file
KoenBaas Oct 25, 2023
76b20d4
Fixed filepath
KoenBaas Oct 25, 2023
5d7d9bd
Fixed bmaxADC b value in Example script
KoenBaas Oct 25, 2023
c0a6b4d
Fixed results comparison and added duration
etpeterson Oct 25, 2023
14fe4cb
Build if statement around plotting to prevent unit test error
KoenBaas Oct 26, 2023
91af69c
GU code contribution
oscarjalnefjord Oct 26, 2023
5856e21
removed type hinting as may cause problems for old python versions
oscarjalnefjord Oct 26, 2023
fd84eff
Delete src/standardized/PV_MUMC_biexp.py
oliverchampion Oct 26, 2023
3b6bc16
Merge pull request #1 from OSIPI/main
KoenBaas Oct 26, 2023
affcd21
Merge pull request #13 from KoenBaas/main
oliverchampion Oct 26, 2023
0515c18
redo bayesian wrapper for single input testing
oliverchampion Oct 26, 2023
0830f1d
Merge remote-tracking branch 'origin/OGC_AmsterdamUMC_standardized' i…
etpeterson Oct 27, 2023
719032f
Added OGC to testing
etpeterson Oct 27, 2023
b3e3368
Merge pull request #22 from OSIPI/main
oscarjalnefjord Oct 27, 2023
b96aca9
created wrapper for PvH
oliverchampion Oct 27, 2023
4316bad
Update PVH_KB_NKI_IVIMfit.py
oliverchampion Oct 27, 2023
ef1f541
Merge pull request #19 from OSIPI/brain_phantom
oliverchampion Oct 27, 2023
442c514
Merge pull request #21 from OSIPI/GU_code_contributions
oliverchampion Oct 27, 2023
d65aa4d
Changed how args and kwargs are passed through osipi_fit
Oct 28, 2023
ce081da
Merge remote-tracking branch 'origin/testing/wrapper' into testing/ad…
etpeterson Oct 28, 2023
fdc6333
Also plot curves in the analysis
etpeterson Oct 29, 2023
eb0965e
Re-enabled json addition
etpeterson Oct 30, 2023
7004a89
Fixed some bugs
oliverchampion Oct 30, 2023
17f2143
Merge branch 'testing/add_ETP_and_add_configuration' of https://githu…
oliverchampion Oct 30, 2023
b712d4b
Updated initialization
etpeterson Oct 30, 2023
17f3033
Updated analysis script
etpeterson Oct 31, 2023
b7b368f
Testing Pauliens code
Nov 2, 2023
05bed07
Merge pull request #15 from OSIPI/OGC_AmsterdamUMC_standardized
oliverchampion Nov 2, 2023
00efddb
phantoms/brain/data/diffusive_snr200.nii.gz: convert to Git LFS
etpeterson Nov 2, 2023
6d6207b
phantoms/brain/ground_truth/hrgt_icbm_2009a_nls_3t.nii.gz: convert to…
etpeterson Nov 2, 2023
3e0d751
Merge branch 'main' into testing/add_ETP_and_add_configuration
etpeterson Nov 2, 2023
d8121c2
phantoms/brain/data/ballistic_snr200.nii.gz: convert to Git LFS
etpeterson Nov 2, 2023
b2ed0be
Prevent phantom code from running during test
etpeterson Nov 2, 2023
37a2fba
Merge pull request #20 from OSIPI/testing/add_ETP_and_add_configuration
oliverchampion Nov 2, 2023
973bf64
Update algorithms.json
oscarjalnefjord Nov 2, 2023
0b3e220
update wrapper
petravanhoudt Nov 3, 2023
fdbcd45
try updating test
petravanhoudt Nov 3, 2023
d28d20e
merge two branches
petravanhoudt Nov 3, 2023
7084adf
updated wrapper of NKI, simple test run works
petravanhoudt Nov 3, 2023
1cd67f1
try to fix shape error in fit results
petravanhoudt Nov 3, 2023
cef3026
Testing analysis workflow
etpeterson Nov 3, 2023
84927bb
Fix workflow file error
etpeterson Nov 3, 2023
44b4c23
Try to run on my branch
etpeterson Nov 3, 2023
1199981
Fix analysis workflow
etpeterson Nov 3, 2023
e4c8060
Trying strings
etpeterson Nov 3, 2023
34b6714
Add artifact uses
etpeterson Nov 3, 2023
4c20e53
Fix R dependency install
etpeterson Nov 3, 2023
19a1b55
Try to fix dependency problem
etpeterson Nov 4, 2023
36f2a8c
Try a cleaner workflow file and a longer test run
etpeterson Nov 4, 2023
4089a80
Add test badge and reduce slow analysis length
etpeterson Nov 4, 2023
38031b1
Merge branch 'main' into testing/wrapper
Nov 4, 2023
ff80609
Re-changed the name from PVH to PvH. Added the two new submissions to…
Nov 4, 2023
15ef9b2
Re-named imports
Nov 4, 2023
e3c24ec
Rename PVH_KB_NKI_IVIMfit.py to PvH_KB_NKI_IVIMfit.py
Nov 4, 2023
0e192ce
Artifact raw data and set plot limits
etpeterson Nov 4, 2023
b8e9250
Merge remote-tracking branch 'origin/testing/wrapper' into analysis/w…
etpeterson Nov 4, 2023
18daf57
Analyze any branch starting with "analysis/"
etpeterson Nov 4, 2023
b8a769a
Merge pull request #23 from OSIPI/testing/wrapper
Nov 5, 2023
db3f01b
Merge pull request #24 from OSIPI/analysis/workflow
Nov 5, 2023
98164bf
Improved plotting and random number generation
etpeterson Nov 5, 2023
eef8916
Fixing GenerateData random number default
etpeterson Nov 5, 2023
40374d8
Merge pull request #26 from OSIPI/analysis/improvements
oscarjalnefjord Nov 7, 2023
c975ef3
Split analysis into matrix jobs
etpeterson Dec 12, 2023
24e10b0
Fix SNR list
etpeterson Dec 12, 2023
b78942d
Fix indentation
etpeterson Dec 12, 2023
8b2b643
Try to move to GITHUB_STATE
etpeterson Dec 12, 2023
37bdbe4
Reformat json read
etpeterson Dec 12, 2023
31fa857
Try adding outputs
etpeterson Dec 12, 2023
50aa904
Fix output naming
etpeterson Dec 12, 2023
f78217b
Some more output debugging
etpeterson Dec 12, 2023
a93cfd6
More debugging
etpeterson Dec 12, 2023
539b6ce
Try other debugging
etpeterson Dec 12, 2023
152d52d
Maybe a fix
etpeterson Dec 12, 2023
fb44655
Fix artifact path
etpeterson Dec 12, 2023
6677460
Add caching and fix name
etpeterson Dec 12, 2023
ce33fad
Cache python venv, clean artifacts, fix analysis
etpeterson Dec 12, 2023
56aa4c1
Fix caching and analysis
etpeterson Dec 12, 2023
55e85ba
Remove caching, fix analysis
etpeterson Dec 12, 2023
698b0b5
Fix the file merging
etpeterson Dec 13, 2023
85ee082
Fix merging
etpeterson Dec 13, 2023
a5c5f9b
Testing comparison
etpeterson Dec 22, 2023
a9cfe61
Update workflow
etpeterson Dec 22, 2023
0d56a81
Remove cache
etpeterson Dec 22, 2023
724d1d7
Fix reference file path
etpeterson Dec 22, 2023
64caccb
Always upload artifacts
etpeterson Dec 22, 2023
d82587a
Update reference file
etpeterson Dec 22, 2023
2b60d20
Custom alpha for each fit
etpeterson Dec 22, 2023
648b14f
Updated reference values
etpeterson Dec 22, 2023
9536aa0
Allow more variability in IAR_LU_modified_mix
etpeterson Dec 22, 2023
2e204b5
Further ease restrictions on IAR_LU_modified_mix
etpeterson Dec 23, 2023
ff2cd75
Add analysis badge to main page
etpeterson Jan 5, 2024
57c64f5
Merge pull request #30 from OSIPI/analysis/parallel_processing
Feb 2, 2024
63dd153
Prevent tests from trying to run the example
etpeterson Feb 6, 2024
b8ee572
clean HEAD
DKuppens Feb 21, 2024
8d918db
[feat] Added Issue template to repository
AdarshRawat1 Feb 22, 2024
d54ab45
[feat] Added PR template
AdarshRawat1 Feb 22, 2024
38f2b39
Merge pull request #33 from OSIPI/testing/fix_example
DKuppens Feb 23, 2024
5da6bbf
Merge pull request #36 from AdarshRawat1/Dev_Pull_request_template
DKuppens Feb 23, 2024
8225f39
Merge branch 'main' into Dev_Issue_templates
DKuppens Feb 23, 2024
bb496e4
Merge pull request #35 from AdarshRawat1/Dev_Issue_templates
oliverchampion Feb 23, 2024
fcf80c9
Clean HEAD pt 2
DKuppens Feb 23, 2024
a9cc388
update gitignore
DKuppens Feb 23, 2024
e0602fc
added super ivim dc
Feb 26, 2024
dd02162
Add pytest to requirements.txt
AhmedBasem20 Feb 27, 2024
35848fc
Add tqdm to requirements.txt
AhmedBasem20 Feb 27, 2024
64db158
automated downloading from zenodo
oliverchampion Feb 28, 2024
2a8de37
fixed the waiting
oliverchampion Feb 28, 2024
2dbe31e
Merge pull request #39 from AhmedBasem20/add-pytest
etpeterson Feb 29, 2024
bd60a8e
Fixed bugs and added brain phantom
oliverchampion Feb 29, 2024
fac848a
Merge pull request #37 from tcml-bme/main
oliverchampion Feb 29, 2024
92a80d6
Updated the github workflow actions
Unique-Usman Mar 1, 2024
ae198b3
Merge pull request #44 from Unique-Usman/usman
etpeterson Mar 1, 2024
831c7c5
Added my branch for to iterate over the solution
Unique-Usman Mar 1, 2024
a643f59
Downgraded actions/upload-artifact@v4 to v3
Unique-Usman Mar 1, 2024
bde1beb
Downgraded download-artifact
Unique-Usman Mar 1, 2024
a147635
Downgraded upload and download-artifact@v4 to v3
Unique-Usman Mar 1, 2024
1f4cbf4
Merge pull request #48 from Unique-Usman/usman
etpeterson Mar 1, 2024
f3df2c6
Cache python environment.
AhmedBasem20 Mar 2, 2024
0801ec3
removed waiting and resolved conflicts
oliverchampion Mar 6, 2024
b7417e6
Merge branch 'main' into zenodo_IO
oliverchampion Mar 6, 2024
90887f4
Cache python setup step.
AhmedBasem20 Mar 6, 2024
4710f75
Use the unit test cache again.
AhmedBasem20 Mar 6, 2024
89bbe0d
Merge pull request #40 from OSIPI/zenodo_IO
etpeterson Mar 7, 2024
6c6cebb
Add OS type to the cache key.
AhmedBasem20 Mar 7, 2024
1a8785a
Merge pull request #53 from AhmedBasem20/analysis/optimize-runtime
etpeterson Mar 7, 2024
8bd36ed
report on repo
abhicodes369 Mar 8, 2024
163a187
Generate a variety of testing data and came up
Unique-Usman Mar 7, 2024
56ee717
Changed the default value to the b_values.json and also move the down…
Unique-Usman Mar 10, 2024
6d210a0
created wrapper column
abhicodes369 Mar 10, 2024
58a423e
Delete local.env.example
abhicodes369 Mar 10, 2024
6c1b907
Delete .gitignore
abhicodes369 Mar 10, 2024
a27e683
Merge pull request #55 from Unique-Usman/solved
etpeterson Mar 10, 2024
321fa55
Adding recovered .gitignore file
abhicodes369 Mar 10, 2024
e6a4721
Update the README file to include the information the sim_vim_sig.py …
Unique-Usman Mar 12, 2024
f72525e
Merge pull request #57 from Unique-Usman/main
etpeterson Mar 13, 2024
09b0a91
Generate API documentation using Sphinx.
AhmedBasem20 Mar 13, 2024
cf05312
added a new column in the csv file . please tell me if there are any …
abhicodes369 Mar 15, 2024
baf5d4a
added a new column in the csv file please tell me if there are any mo…
abhicodes369 Mar 15, 2024
d7df0ca
added a new column to csv and modified python file
abhicodes369 Mar 15, 2024
255618c
Integrate the algorithms figures into the documentation website.
AhmedBasem20 Mar 18, 2024
6387588
Add the figures artifact to the docs folder before building the website.
AhmedBasem20 Mar 18, 2024
6725843
Fix pdf path
AhmedBasem20 Mar 18, 2024
c05d0cc
Use figures artifact generated by analysis.yml workflow
AhmedBasem20 Mar 18, 2024
bbb6358
Deploy when the new figures are generated.
AhmedBasem20 Mar 18, 2024
fbbd3f0
use the official download method.
AhmedBasem20 Mar 19, 2024
85b13d7
Prevent deploying on every push
AhmedBasem20 Mar 20, 2024
b7d5e2f
Generate docs even on analysis workflow failure.
AhmedBasem20 Mar 21, 2024
ab9354b
rename docs workflow.
AhmedBasem20 Mar 21, 2024
be6f31f
A python script to wrap image read and write for Nifti Images.
Unique-Usman Mar 24, 2024
6c77917
Followed up with the required change
Unique-Usman Mar 25, 2024
6db42c1
Make the required change for follow up
Unique-Usman Mar 26, 2024
5ad4cbc
Update the pull request
Unique-Usman Mar 26, 2024
5fe5728
Merge pull request #59 from AhmedBasem20/api-docs
etpeterson Mar 29, 2024
d22612c
separate the deploy job from the build job
AhmedBasem20 Apr 6, 2024
2dc8e9a
Merge pull request #61 from AhmedBasem20/refactor-pipelines
etpeterson Apr 8, 2024
d2fe3ee
Add status badge for the documentation workflow.
AhmedBasem20 Apr 9, 2024
43a94a6
Merge pull request #62 from AhmedBasem20/docs-ci-badge
etpeterson Apr 9, 2024
82642fd
Added the fittings algorithms to fit a tri-exponential model
paulienvoorter Apr 9, 2024
2c3787e
Merge pull request #63 from paulienvoorter/main
etpeterson Apr 9, 2024
ade52fd
Added read_bval_file and read_bvec_file to read the bvec and the bval…
Unique-Usman Apr 10, 2024
992147d
Refactor column names in repostatus.py and combined_report.html
abhicodes369 Apr 11, 2024
6ab39b5
Add zenodo-get, sphinx, and sphinx_rtd_theme to requirements.txt
abhicodes369 Apr 16, 2024
06167e7
Merge branch 'main' into created_repostatus/statistics
abhicodes369 Apr 16, 2024
4a148b8
wrap the html into a function
abhicodes369 Apr 16, 2024
e17a3e7
Merge branch 'created_repostatus/statistics' of https://github.com/ab…
abhicodes369 Apr 16, 2024
a6b225d
Merge pull request #56 from abhicodes369/created_repostatus/statistics
etpeterson Apr 17, 2024
5b6f6ae
Fixed the error in the script wrapper
Unique-Usman Apr 23, 2024
f75534d
Use tqdm python3 library to show the progress of the wrapper when run…
Unique-Usman Apr 24, 2024
94ee6d4
Update README.md
etpeterson Apr 26, 2024
14d1793
Changed the total argument from hard coded value to dynamic value whi…
Unique-Usman Apr 29, 2024
b9c8474
Merge pull request #60 from Unique-Usman/wrapper
etpeterson Apr 30, 2024
8d5bc53
created the dockerise version of the TF2.4_IVIM-MRI_CodeCollection
Unique-Usman Jun 1, 2024
d44c6e7
Make the python to use version 3.11 docker version, created a dedicat…
Unique-Usman Jun 5, 2024
28b516b
Merge pull request #66 from Unique-Usman/osipi_docker
etpeterson Jun 7, 2024
c8dcf14
Updated the README.md file and also fixed issue with the nifti_wrappe…
Unique-Usman Jun 11, 2024
ecc5658
Merge pull request #69 from Unique-Usman/osipi_docker
etpeterson Jun 12, 2024
227be9f
added missing algorithm to json
oscarjalnefjord Jun 28, 2024
4869ac4
corrected bug related to testing of OJ_GU_seg
oscarjalnefjord Jun 28, 2024
f612601
corrected bug related to testing of OJ_GU_seg
oscarjalnefjord Jun 28, 2024
d269381
removed OJ_GU_seg from algorithms again
oscarjalnefjord Jun 28, 2024
1a393ca
numpy<2 to avoid crash
oscarjalnefjord Jun 28, 2024
12f42cb
OJ_GU_seg to json
oscarjalnefjord Jun 28, 2024
b099579
Update sim_ivim_sig.py
oliverchampion Jul 23, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: 🐞 Bug report
description: Create a report to help us improve (use this to report bugs only).
title: "[BUG] <title>"
labels: [🐞 bug]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. Include images if relevant.
placeholder: A bug happened!
validations:
required: true
- type: textarea
attributes:
label: Screenshots [optional]
description: |
Add screenshots to help explain your problem. You can also add a video here.

Tip: You can attach images or video files by clicking this area to highlight it and then dragging files in.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the bug.
placeholder: |
1. Visit '...'
2. Click on '...'
3. Scroll to '...'
4. See error
validations:
required: true
- type: textarea
attributes:
label: Expected behavior
description: A clear and concise description of what you expected to happen
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
validations:
required: false
- type: dropdown
id: assign
attributes:
label: Are you working on this?
options:
- "Yes"
- "No"
39 changes: 39 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: ✨ Idea [Feature request]
description: Tell us about the idea you have !
title: "[Feature] <title>"
labels: [idea]
body:
- type: markdown
attributes:
value: |
Your suggestions are highly valuable.
- type: textarea
attributes:
label: Feature description
description: |
Is your feature request related to a problem? A clear and concise description of what the feature is.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
attributes:
label: Describe alternatives
description: |
A clear and concise description of any alternative solutions or features you have considered.
- type: textarea
attributes:
label: Additional context
description: |
Add any other additional context or screenshots about the feature request here.
- type: dropdown
id: assign
attributes:
label: Are you working on this?
options:
- "Yes"
- "No"
39 changes: 39 additions & 0 deletions .github/actions/download-artifact/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
---
name: Download Artifact
description: Download artifact from the same or different workflow

inputs:
name:
description: Artifact to be downloaded
required: true
type: string

runs:
using: composite
steps:
- name: Download Artifact
uses: actions/github-script@v6
with:
script: |
var inputs = ${{ toJSON(inputs) }}
var artifactName = inputs['name']
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == artifactName
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/${artifactName}.zip`, Buffer.from(download.data));

- name: 'Unzip artifact'
run: unzip ${{ inputs.name }}.zip
shell: bash
13 changes: 13 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
### Describe the changes you have made in this PR

_A clear and concise description of what you want to happen_

### Link this PR to an issue [optional]

Fixes _#ISSUE-NUMBER_

### Checklist

- [ ] Self-review of changed code
- [ ] Added automated tests where applicable
- [ ] Update Docs & Guides
173 changes: 173 additions & 0 deletions .github/workflows/analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
name: Algorithm Analysis

on:
push:
branches:
- 'main'
- 'analysis/**'

jobs:
algorithms:
runs-on: ubuntu-latest
outputs: # here we use the outputs from steps, and set outputs for the job `configure`
algorithms: ${{ steps.algorithms.outputs.algorithms }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
id: setup_python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Cache pip
uses: actions/cache@v3
id: pip-cache
with:
key: ${{ runner.os }}-${{ env.pythonLocation }}-pip-${{ hashFiles('**/requirements.txt') }}
path: ${{ env.pythonLocation }}
if: steps.pip-cache.outputs.cache-hit != 'true'

- name: Install dependencies
run: |
pip install -r requirements.txt

- name: Read algorithms
id: algorithms
run: |
echo 'algorithms<<EOF' >> $GITHUB_OUTPUT
cat ./tests/IVIMmodels/unit_tests/algorithms.json >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
- name: Log algorithms
run: |
echo "${{fromJson(steps.algorithms.outputs.algorithms)}}"
echo "${{fromJson(steps.algorithms.outputs.algorithms).algorithms}}"
- name: Log algorithms file
run: cat ./tests/IVIMmodels/unit_tests/algorithms.json

build:
runs-on: ubuntu-latest
needs: algorithms
continue-on-error: false
strategy:
fail-fast: false
matrix:
algorithm: ${{fromJson(needs.algorithms.outputs.algorithms).algorithms}}
SNR: [10, 30, 50, 100, 200]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
if: steps.pip-cache.outputs.cache-hit != 'true'
- name: Restore cache
id: python-cache
uses: actions/cache@v3
with:
key: ${{ runner.os }}-${{ env.pythonLocation }}-pip-${{ hashFiles('**/requirements.txt') }}
path: ${{ env.pythonLocation }}

- name: Generate fitting data
run: |
python -m pytest -m slow --selectAlgorithm ${{ matrix.algorithm }} --saveFileName test_output_${{ matrix.algorithm }}_${{ matrix.SNR }}.csv --SNR ${{ matrix.SNR }} --fitCount 300 --saveDurationFileName test_duration_${{ matrix.algorithm }}_${{ matrix.SNR }}.csv
- name: Upload raw data
uses: actions/upload-artifact@v3
with:
name: Working_Data
retention-days: 1
path: |
test_output_${{ matrix.algorithm }}_${{ matrix.SNR }}.csv
test_duration_${{ matrix.algorithm }}_${{ matrix.SNR }}.csv

merge:
runs-on: ubuntu-latest
needs: build
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
with:
path: artifacts
- name: Merge fitting results
run: |
head -n 1 $(ls artifacts/Working_Data/test_output_*.csv | head -n 1) > test_output.csv
tail -q -n +2 artifacts/Working_Data/test_output_*.csv >> test_output.csv
- name: Merge timing results
run: |
head -n 1 $(ls artifacts/Working_Data/test_duration_*.csv | head -n 1) > test_duration.csv
tail -q -n +2 artifacts/Working_Data/test_duration_*.csv >> test_duration.csv
- name: Upload merged artifacts
uses: actions/upload-artifact@v3
with:
name: Data
path: |
test_output.csv
test_duration.csv

analyze:
runs-on: ubuntu-latest
needs: merge
steps:
- uses: actions/checkout@v4
- name: Set up R
uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
- name: Install R dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
packages: |
any::plyr
any::dplyr
any::tidyverse
any::data.table
any::ggplot2
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: Data
- name: Generate figures
run: Rscript --vanilla tests/IVIMmodels/unit_tests/analyze.r test_output.csv test_duration.csv
- name: Upload figures
uses: actions/upload-artifact@v3
if: always()
with:
name: Figures
path: |
D.pdf
f.pdf
Dp.pdf
D_limited.pdf
f_limited.pdf
Dp_limited.pdf
durations.pdf
curve_plot.pdf
fitted_curves.pdf

compare:
runs-on: ubuntu-latest
needs: merge
steps:
- uses: actions/checkout@v4
- name: Set up R
uses: r-lib/actions/setup-r@v2
with:
use-public-rspm: true
- name: Install R dependencies
uses: r-lib/actions/setup-r-dependencies@v2
with:
packages: |
any::tidyverse
any::assertr
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: Data
- name: Test against previous results
run: Rscript --vanilla tests/IVIMmodels/unit_tests/compare.r test_output.csv test_reference.csv tests/IVIMmodels/unit_tests/reference_output.csv test_results.csv
- name: Upload data
uses: actions/upload-artifact@v3
if: always()
with:
name: Comparison
path: |
test_reference.csv
test_results.csv
66 changes: 66 additions & 0 deletions .github/workflows/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Build & Deploy Documentation

on:
workflow_run:
workflows: [Algorithm Analysis]
types:
- completed
permissions:
contents: read
pages: write
id-token: write
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Set up Python
id: setup_python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Cache pip
uses: actions/cache@v3
id: pip-cache
with:
key: ${{ runner.os }}-${{ env.pythonLocation }}-pip-${{ hashFiles('**/requirements.txt') }}
path: ${{ env.pythonLocation }}
if: steps.pip-cache.outputs.cache-hit != 'true'

- name: Install dependencies
run: |
pip install -r requirements.txt

# Action to download artifacts from a different workflow (analysis.yml)
- name: 'Download artifact'
if: ${{ github.event.workflow_run.conclusion == 'success' }}
uses: ./.github/actions/download-artifact
with:
name: 'Figures'

- name: Build html
run: |
mkdir docs/_static
mv *.pdf docs/_static/
sphinx-apidoc -o docs src
cd docs/
make html

- name: Upload docs artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'docs/_build/html'

deploy:
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}

runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
Loading
Loading