From 8bd36ed84863c0f26eb128cb408e757e01289ed1 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Fri, 8 Mar 2024 22:52:49 +0530 Subject: [PATCH 01/11] report on repo --- .gitignore | 1 + combined_report.html | 126 +++++++++++++++++++++++++++++++++++++++++++ local.env.example | 3 ++ repostatus.py | 37 +++++++++++++ 4 files changed, 167 insertions(+) create mode 100644 combined_report.html create mode 100644 local.env.example create mode 100644 repostatus.py diff --git a/.gitignore b/.gitignore index d3420ab..5898042 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ bvals.txt nosetests.xml coverage.xml *.pyc +local.env diff --git a/combined_report.html b/combined_report.html new file mode 100644 index 0000000..e1d8743 --- /dev/null +++ b/combined_report.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TechniqueSubfolderContributorsTested
IVIMOGC_AmsterdamUMCOliver Gurney-ChampionYes
IVIMOGC_AmsterdamUMCOliver Gurney-ChampionYes
Tri-exponentialOGC_AmsterdamUMCOliver Gurney-ChampionYes
Tri-exponentialOGC_AmsterdamUMCOliver Gurney-ChampionYes
IVIMOGC_AmsterdamUMCOliver Gurney-Champion/Sebastiano BarbieriYes
IVIMPvH_KB_NKIPetra van Houdt/Stefan Zijlema/Koen BaasYes
IVIMPV_MUMCPaulien VoorterYes
IVIMIAR_LundUniversityIvan A. RashidYes
IVIMIAR_LundUniversityIvan A. RashidYes
IVIMIAR_LundUniversityIvan A. RashidYes
IVIMIAR_LundUniversityIvan A. RashidYes
IVIMIAR_LundUniversityFarooq et al. Modified by Ivan A. RashidYes
IVIMIAR_LundUniversityFadnavis et al. Modified by Ivan A. RashidYes
IVIMIAR_LundUniversityModified by Ivan A. RashidYes
IVIMIAR_LundUniversityModified by Ivan A. RashidYes
IVIMOJ_GUOscar JalnefjordNo
IVIMOJ_GUOscar JalnefjordNo
IVIMOJ_GUOscar JalnefjordNo
IVIMETP_SRIEric PetersonYes
\ No newline at end of file diff --git a/local.env.example b/local.env.example new file mode 100644 index 0000000..5df0161 --- /dev/null +++ b/local.env.example @@ -0,0 +1,3 @@ +REPO_DIR=/path/to/your/repo +CODE_CONTRIBUTIONS_FILE=/path/to/your/code_contributions_record.csv +ALGORITHMS_FILE=/path/to/your/algorithms.json diff --git a/repostatus.py b/repostatus.py new file mode 100644 index 0000000..b5727dc --- /dev/null +++ b/repostatus.py @@ -0,0 +1,37 @@ +import os +import pandas as pd +from dotenv import load_dotenv +import json + +# Load environment variables +load_dotenv(r'C:\Users\home\tf2.4\TF2.4_IVIM-MRI_CodeCollection\local.env') + +# Read the CSV file +csv_file_path = os.getenv('CODE_CONTRIBUTIONS_FILE') +df = pd.read_csv(csv_file_path) + +unique_subfolders = df['subfolder'].unique().tolist() + +# Read the JSON file +algorithms_file_path = os.getenv('ALGORITHMS_FILE') +with open(algorithms_file_path, 'r') as f: + algorithms_data = json.load(f) + +# Get a list of all algorithms from the JSON file +all_algorithms = algorithms_data['algorithms'] + +# Add a new column 'Tested' to the DataFrame if it starts with that of subfolder +df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm.startswith(row['subfolder'].split('_')[0]) for algorithm in all_algorithms) else 'No', axis=1) + +# Select the desired columns +df_selected = df[['Technique', 'subfolder', 'Authors', 'Tested']] +df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Tested'] + +# Convert the DataFrame to HTML +html_string = df_selected.to_html(index=False) + +# Save the HTML to a file +with open('combined_report.html', 'w') as f: + f.write(html_string) +# printing message that report have been succesfully generated +print("Combined HTML report generated successfully.") \ No newline at end of file From 6d210a0e68bbb9969dee5d8d0e7339ac5b22868d Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Sun, 10 Mar 2024 22:04:38 +0530 Subject: [PATCH 02/11] created wrapper column --- repostatus.py | 37 ----------- requirements.txt | 3 +- utilities/repostatus.py | 64 +++++++++++++++++++ .../combined_report.html | 20 ++++++ 4 files changed, 86 insertions(+), 38 deletions(-) delete mode 100644 repostatus.py create mode 100644 utilities/repostatus.py rename combined_report.html => website/combined_report.html (87%) diff --git a/repostatus.py b/repostatus.py deleted file mode 100644 index b5727dc..0000000 --- a/repostatus.py +++ /dev/null @@ -1,37 +0,0 @@ -import os -import pandas as pd -from dotenv import load_dotenv -import json - -# Load environment variables -load_dotenv(r'C:\Users\home\tf2.4\TF2.4_IVIM-MRI_CodeCollection\local.env') - -# Read the CSV file -csv_file_path = os.getenv('CODE_CONTRIBUTIONS_FILE') -df = pd.read_csv(csv_file_path) - -unique_subfolders = df['subfolder'].unique().tolist() - -# Read the JSON file -algorithms_file_path = os.getenv('ALGORITHMS_FILE') -with open(algorithms_file_path, 'r') as f: - algorithms_data = json.load(f) - -# Get a list of all algorithms from the JSON file -all_algorithms = algorithms_data['algorithms'] - -# Add a new column 'Tested' to the DataFrame if it starts with that of subfolder -df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm.startswith(row['subfolder'].split('_')[0]) for algorithm in all_algorithms) else 'No', axis=1) - -# Select the desired columns -df_selected = df[['Technique', 'subfolder', 'Authors', 'Tested']] -df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Tested'] - -# Convert the DataFrame to HTML -html_string = df_selected.to_html(index=False) - -# Save the HTML to a file -with open('combined_report.html', 'w') as f: - f.write(html_string) -# printing message that report have been succesfully generated -print("Combined HTML report generated successfully.") \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 382e3c9..9a76d4f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,4 +9,5 @@ matplotlib scienceplots cvxpy pytest -tqdm \ No newline at end of file +tqdm +pandas \ No newline at end of file diff --git a/utilities/repostatus.py b/utilities/repostatus.py new file mode 100644 index 0000000..294f81d --- /dev/null +++ b/utilities/repostatus.py @@ -0,0 +1,64 @@ +import os +import pandas as pd +import json + +# directory of the current script +script_dir = os.path.dirname(os.path.abspath(__file__)) + +# path to the repository +REPO_DIR = os.path.dirname(script_dir) + +CODE_CONTRIBUTIONS_FILE = os.path.join(REPO_DIR, "doc", "code_contributions_record.csv") +ALGORITHMS_FILE = os.path.join(REPO_DIR, "tests", "IVIMmodels", "unit_tests", "algorithms.json") +SOURCE_FOLDER = os.path.join(REPO_DIR, "src", "original") +WRAPPED_FOLDER = os.path.join(REPO_DIR, "src", "standardized") + +# Read the CSV file +df = pd.read_csv(CODE_CONTRIBUTIONS_FILE) + +unique_subfolders = df['subfolder'].unique().tolist() + +# Read the JSON file +with open(ALGORITHMS_FILE, 'r') as f: + algorithms_data = json.load(f) + +# list of all algorithms from the JSON file +all_algorithms = algorithms_data['algorithms'] + +# Check if both code_contributions_file matches with source folder +for subfolder in unique_subfolders: + subfolder_path = os.path.join(SOURCE_FOLDER, subfolder) + if not os.path.exists(subfolder_path): + print(f"Warning: Subfolder '{subfolder}' does not exist in the source folder.") + +# Add column 'Tested' to the DataFrame if it starts with that of subfolder +df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm.startswith(row['subfolder'].split('_')[0]) for algorithm in all_algorithms) else 'No', axis=1) + +# Parse files in the WRAPPED_FOLDER +wrapped_algorithms = [] +for root, dirs, files in os.walk(WRAPPED_FOLDER): + for file in files: + if file.endswith('.py'): + file_path = os.path.join(root, file) + with open(file_path, 'r') as f: + content = f.read() + for algorithm in all_algorithms: + if algorithm in content: + wrapped_algorithms.append(algorithm) + +# Add a column 'Wrapped' to the DataFrame +df['Wrapped'] = df.apply(lambda row: 'Yes' if any(algorithm.startswith(row['subfolder'].split('_')[0]) for algorithm in wrapped_algorithms) else 'No', axis=1) + +# Select the desired columns +df_selected = df[['Technique', 'subfolder', 'Authors', 'Tested', 'Wrapped']] +df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Tested', 'Wrapped'] + +# Convert the DataFrame to HTML +html_string = df_selected.to_html(index=False) + +# Save the HTML to a file +with open(os.path.join(REPO_DIR, 'combined_report.html'), 'w') as f: + f.write(html_string) + +# Printing message that report has been successfully generated +print("Combined HTML report generated successfully.") \ No newline at end of file diff --git a/combined_report.html b/website/combined_report.html similarity index 87% rename from combined_report.html rename to website/combined_report.html index e1d8743..ca9608c 100644 --- a/combined_report.html +++ b/website/combined_report.html @@ -5,6 +5,7 @@ Subfolder Contributors Tested + Wrapped @@ -13,114 +14,133 @@ OGC_AmsterdamUMC Oliver Gurney-Champion Yes + Yes IVIM OGC_AmsterdamUMC Oliver Gurney-Champion Yes + Yes Tri-exponential OGC_AmsterdamUMC Oliver Gurney-Champion Yes + Yes Tri-exponential OGC_AmsterdamUMC Oliver Gurney-Champion Yes + Yes IVIM OGC_AmsterdamUMC Oliver Gurney-Champion/Sebastiano Barbieri Yes + Yes IVIM PvH_KB_NKI Petra van Houdt/Stefan Zijlema/Koen Baas Yes + Yes IVIM PV_MUMC Paulien Voorter Yes + Yes IVIM IAR_LundUniversity Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Farooq et al. Modified by Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Fadnavis et al. Modified by Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Modified by Ivan A. Rashid Yes + Yes IVIM IAR_LundUniversity Modified by Ivan A. Rashid Yes + Yes IVIM OJ_GU Oscar Jalnefjord No + No IVIM OJ_GU Oscar Jalnefjord No + No IVIM OJ_GU Oscar Jalnefjord No + No IVIM ETP_SRI Eric Peterson Yes + Yes \ No newline at end of file From 58a423e74c22fa6b6a745d85c41005297b9ab8a1 Mon Sep 17 00:00:00 2001 From: abhi ram <119055274+abhicodes369@users.noreply.github.com> Date: Sun, 10 Mar 2024 22:06:30 +0530 Subject: [PATCH 03/11] Delete local.env.example --- local.env.example | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 local.env.example diff --git a/local.env.example b/local.env.example deleted file mode 100644 index 5df0161..0000000 --- a/local.env.example +++ /dev/null @@ -1,3 +0,0 @@ -REPO_DIR=/path/to/your/repo -CODE_CONTRIBUTIONS_FILE=/path/to/your/code_contributions_record.csv -ALGORITHMS_FILE=/path/to/your/algorithms.json From 6c1b907ef5149c8caf02776d3a0032fc3fba3bea Mon Sep 17 00:00:00 2001 From: abhi ram <119055274+abhicodes369@users.noreply.github.com> Date: Sun, 10 Mar 2024 22:07:11 +0530 Subject: [PATCH 04/11] Delete .gitignore --- .gitignore | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 5898042..0000000 --- a/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -.idea* -.github/* -.github/ISSUE_TEMPLATE/ -.github/pull_request_template.md -__pycache__/ -*.nii.gz -*.nii -*.dcm -*.mat -*.raw -bvals.txt -# Unit test / coverage reports -.tox/ -.coverage -.cache -nosetests.xml -coverage.xml -*.pyc -local.env From 321fa5549a274a83b86371f01cbea1042f6e6060 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Sun, 10 Mar 2024 22:33:11 +0530 Subject: [PATCH 05/11] Adding recovered .gitignore file --- .gitignore | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..59de036 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +.idea* +.github/* +.github/ISSUE_TEMPLATE/ +.github/pull_request_template.md +__pycache__/ +*.nii.gz +*.nii +*.dcm +*.mat +*.raw +bvals.txt +# Unit test / coverage reports +.tox/ +.coverage +.cache +nosetests.xml +coverage.xml +*.pyc \ No newline at end of file From cf05312524f090c270d92dc8db6610947f1475a1 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Fri, 15 Mar 2024 23:15:33 +0530 Subject: [PATCH 06/11] added a new column in the csv file . please tell me if there are any modifications --- doc/code_contributions_record.csv | 40 +++++++++++++++---------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/doc/code_contributions_record.csv b/doc/code_contributions_record.csv index 2d22f7c..8be6c98 100644 --- a/doc/code_contributions_record.csv +++ b/doc/code_contributions_record.csv @@ -1,20 +1,20 @@ -Technique,Category,Subcategory,notes,subfolder,Link to source code,Authors,Institution,function/module,DOI,Tester,test status -IVIM,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares/fit_least_squares_array,,tbd, -IVIM,Fitting,segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented/fit_segmented_array,,tbd, -Tri-exponential,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares_tri_exp/fit_least_squares_array_tri_exp,,tbd, -Tri-exponential,Fitting,Segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented_tri_exp/fit_segmented_array_tri_exp,https://doi.org/10.3389/fphys.2022.942495,tbd, -IVIM,Fitting,Bayesian,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion/Sebastiano Barbieri,Amsterdam UMC,fit_bayesian_array,https://doi.org/10.1002/mrm.28852,tbd, -IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd, -IVIM,Fitting,two-step (segmented) LSQ fitting, cut-off chosen for brain data; option to fit IVIM with inversion recovery or without IR,PV_MUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/PV_MUMC/,Paulien Voorter,Maastricht University Medical Center,two_step_IVIM_fit.py,,tbd, -IVIM,Fitting,bi-exponential NLLS,Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_biexp.py,Ivan A. Rashid,Lund University,IvimModelBiexp,tba,tbd, -IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D before a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_2step.py,Ivan A. Rashid,Lund University,IvimModelSegmented2Step,tba,tbd, -IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an estimate of D* followed by a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_3step.py,Ivan A. Rashid,Lund University,IvimModelSegmented3Step,tba,tbd, -IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D. Subtracts the diffusion signal and estimated D*. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_subtracted.py,Ivan A. Rashid,Lund University,IvimModelSubtracted,tba,tbd, -IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_mix.py,Farooq et al. Modified by Ivan A. Rashid,Lund University,IvimModelVP,https://doi.org/10.1038/srep38927,tbd, -IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd, -IVIM,Fitting,Linear fit,Linear fit for D with extrapolation for f. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_linear.py,Modified by Ivan A. Rashid,Lund University,IvimModelLinear,tba,tbd, -IVIM,Fitting,sIVIM fit,NLLS of the simplified IVIM model (sIVIM). Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_sivim.py,Modified by Ivan A. Rashid,Lund University,IvimModelsIVIM,tba,tbd, -IVIM,Fitting,Segmented NLLS fitting,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_seg,https://doi.org/10.1007/s10334-018-0697-5,tbd, -IVIM,Fitting,Bayesian,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_bayes,https://doi.org/10.1002/mrm.26783,tbd, -IVIM,Fitting,Segmented NLLS fitting,Specifically tailored algorithm for NLLS segmented fitting,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,seg,https://doi.org/10.1007/s10334-018-0697-5,tbd, -IVIM,Fitting,Linear fit,Linear fit for D and D* and f. Intended to be extremely fast but not always accurate,ETP_SRI,TF2.4_IVIM-MRI_CodeCollection/src/original/ETP_SRI/LinearFitting.py,Eric Peterson,SRI International,,,tbd, +Technique,Category,Subcategory,notes,subfolder,Link to source code,Authors,Institution,function/module,DOI,Tester,test status,wrapped +IVIM,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares/fit_least_squares_array,,tbd,,no +IVIM,Fitting,segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented/fit_segmented_array,,tbd,,yes +Tri-exponential,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares_tri_exp/fit_least_squares_array_tri_exp,,tbd,,no +Tri-exponential,Fitting,Segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented_tri_exp/fit_segmented_array_tri_exp,https://doi.org/10.3389/fphys.2022.942495,tbd,,yes +IVIM,Fitting,Bayesian,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion/Sebastiano Barbieri,Amsterdam UMC,fit_bayesian_array,https://doi.org/10.1002/mrm.28852,tbd,,yes +IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd,,yes +IVIM,Fitting,two-step (segmented) LSQ fitting, cut-off chosen for brain data; option to fit IVIM with inversion recovery or without IR,PV_MUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/PV_MUMC/,Paulien Voorter,Maastricht University Medical Center,two_step_IVIM_fit.py,,tbd,,yes +IVIM,Fitting,bi-exponential NLLS,Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_biexp.py,Ivan A. Rashid,Lund University,IvimModelBiexp,tba,tbd,,yes +IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D before a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_2step.py,Ivan A. Rashid,Lund University,IvimModelSegmented2Step,tba,tbd,,yes +IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an estimate of D* followed by a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_3step.py,Ivan A. Rashid,Lund University,IvimModelSegmented3Step,tba,tbd,,yes +IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D. Subtracts the diffusion signal and estimated D*. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_subtracted.py,Ivan A. Rashid,Lund University,IvimModelSubtracted,tba,tbd,,yes +IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_mix.py,Farooq et al. Modified by Ivan A. Rashid,Lund University,IvimModelVP,https://doi.org/10.1038/srep38927,tbd,,yes +IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd,,yes +IVIM,Fitting,Linear fit,Linear fit for D with extrapolation for f. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_linear.py,Modified by Ivan A. Rashid,Lund University,IvimModelLinear,tba,tbd,,no +IVIM,Fitting,sIVIM fit,NLLS of the simplified IVIM model (sIVIM). Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_sivim.py,Modified by Ivan A. Rashid,Lund University,IvimModelsIVIM,tba,tbd,,no +IVIM,Fitting,Segmented NLLS fitting,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,yes +IVIM,Fitting,Bayesian,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_bayes,https://doi.org/10.1002/mrm.26783,tbd,,no +IVIM,Fitting,Segmented NLLS fitting,Specifically tailored algorithm for NLLS segmented fitting,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,no +IVIM,Fitting,Linear fit,Linear fit for D and D* and f. Intended to be extremely fast but not always accurate,ETP_SRI,TF2.4_IVIM-MRI_CodeCollection/src/original/ETP_SRI/LinearFitting.py,Eric Peterson,SRI International,,,tbd,,yes \ No newline at end of file From baf5d4a68a1901def566ce77e7280ce860717451 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Sat, 16 Mar 2024 02:23:12 +0530 Subject: [PATCH 07/11] added a new column in the csv file please tell me if there are any modifications --- doc/code_contributions_record.csv | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/doc/code_contributions_record.csv b/doc/code_contributions_record.csv index 8be6c98..c4c4160 100644 --- a/doc/code_contributions_record.csv +++ b/doc/code_contributions_record.csv @@ -1,20 +1,20 @@ Technique,Category,Subcategory,notes,subfolder,Link to source code,Authors,Institution,function/module,DOI,Tester,test status,wrapped IVIM,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares/fit_least_squares_array,,tbd,,no -IVIM,Fitting,segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented/fit_segmented_array,,tbd,,yes +IVIM,Fitting,segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented/fit_segmented_array,,tbd,,OGC_AmsterdamUMC_biexp Tri-exponential,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares_tri_exp/fit_least_squares_array_tri_exp,,tbd,,no -Tri-exponential,Fitting,Segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented_tri_exp/fit_segmented_array_tri_exp,https://doi.org/10.3389/fphys.2022.942495,tbd,,yes -IVIM,Fitting,Bayesian,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion/Sebastiano Barbieri,Amsterdam UMC,fit_bayesian_array,https://doi.org/10.1002/mrm.28852,tbd,,yes -IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd,,yes -IVIM,Fitting,two-step (segmented) LSQ fitting, cut-off chosen for brain data; option to fit IVIM with inversion recovery or without IR,PV_MUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/PV_MUMC/,Paulien Voorter,Maastricht University Medical Center,two_step_IVIM_fit.py,,tbd,,yes -IVIM,Fitting,bi-exponential NLLS,Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_biexp.py,Ivan A. Rashid,Lund University,IvimModelBiexp,tba,tbd,,yes -IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D before a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_2step.py,Ivan A. Rashid,Lund University,IvimModelSegmented2Step,tba,tbd,,yes -IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an estimate of D* followed by a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_3step.py,Ivan A. Rashid,Lund University,IvimModelSegmented3Step,tba,tbd,,yes -IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D. Subtracts the diffusion signal and estimated D*. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_subtracted.py,Ivan A. Rashid,Lund University,IvimModelSubtracted,tba,tbd,,yes -IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_mix.py,Farooq et al. Modified by Ivan A. Rashid,Lund University,IvimModelVP,https://doi.org/10.1038/srep38927,tbd,,yes -IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd,,yes +Tri-exponential,Fitting,Segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented_tri_exp/fit_segmented_array_tri_exp,https://doi.org/10.3389/fphys.2022.942495,tbd,,OGC_AmsterdamUMC_biexp_segmented +IVIM,Fitting,Bayesian,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion/Sebastiano Barbieri,Amsterdam UMC,fit_bayesian_array,https://doi.org/10.1002/mrm.28852,tbd,,OGC_AmsterdamUMC_Bayesian_biexp +IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd,,PvH_KB_NKI_IVIMfit.py +IVIM,Fitting,two-step (segmented) LSQ fitting, cut-off chosen for brain data; option to fit IVIM with inversion recovery or without IR,PV_MUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/PV_MUMC/,Paulien Voorter,Maastricht University Medical Center,two_step_IVIM_fit.py,,tbd,,PV_MUMC_biexp +IVIM,Fitting,bi-exponential NLLS,Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_biexp.py,Ivan A. Rashid,Lund University,IvimModelBiexp,tba,tbd,,IAR_LU_biexp +IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D before a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_2step.py,Ivan A. Rashid,Lund University,IvimModelSegmented2Step,tba,tbd,,IAR_LU_segmented_2step.py +IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an estimate of D* followed by a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_3step.py,Ivan A. Rashid,Lund University,IvimModelSegmented3Step,tba,tbd,,IAR_LU_segmented_3step.py +IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D. Subtracts the diffusion signal and estimated D*. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_subtracted.py,Ivan A. Rashid,Lund University,IvimModelSubtracted,tba,tbd,,IAR_LU_subtracted +IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_mix.py,Farooq et al. Modified by Ivan A. Rashid,Lund University,IvimModelVP,https://doi.org/10.1038/srep38927,tbd,,IAR_LU_modified_mix +IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd,,IAR_LundUniversity_topopro IVIM,Fitting,Linear fit,Linear fit for D with extrapolation for f. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_linear.py,Modified by Ivan A. Rashid,Lund University,IvimModelLinear,tba,tbd,,no IVIM,Fitting,sIVIM fit,NLLS of the simplified IVIM model (sIVIM). Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_sivim.py,Modified by Ivan A. Rashid,Lund University,IvimModelsIVIM,tba,tbd,,no -IVIM,Fitting,Segmented NLLS fitting,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,yes +IVIM,Fitting,Segmented NLLS fitting,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,OJ_GU_seg IVIM,Fitting,Bayesian,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_bayes,https://doi.org/10.1002/mrm.26783,tbd,,no IVIM,Fitting,Segmented NLLS fitting,Specifically tailored algorithm for NLLS segmented fitting,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,no -IVIM,Fitting,Linear fit,Linear fit for D and D* and f. Intended to be extremely fast but not always accurate,ETP_SRI,TF2.4_IVIM-MRI_CodeCollection/src/original/ETP_SRI/LinearFitting.py,Eric Peterson,SRI International,,,tbd,,yes \ No newline at end of file +IVIM,Fitting,Linear fit,Linear fit for D and D* and f. Intended to be extremely fast but not always accurate,ETP_SRI,TF2.4_IVIM-MRI_CodeCollection/src/original/ETP_SRI/LinearFitting.py,Eric Peterson,SRI International,,,tbd,,ETP_SRI_LinearFitting \ No newline at end of file From d7df0ca7926421d0e1894f372297935ae881bea8 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Sat, 16 Mar 2024 02:56:16 +0530 Subject: [PATCH 08/11] added a new column to csv and modified python file --- doc/code_contributions_record.csv | 8 +++--- utilities/repostatus.py | 29 +++++-------------- website/combined_report.html | 48 +++++++++++++++---------------- 3 files changed, 35 insertions(+), 50 deletions(-) diff --git a/doc/code_contributions_record.csv b/doc/code_contributions_record.csv index c4c4160..e3c8e10 100644 --- a/doc/code_contributions_record.csv +++ b/doc/code_contributions_record.csv @@ -4,14 +4,14 @@ IVIM,Fitting,segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollecti Tri-exponential,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares_tri_exp/fit_least_squares_array_tri_exp,,tbd,,no Tri-exponential,Fitting,Segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented_tri_exp/fit_segmented_array_tri_exp,https://doi.org/10.3389/fphys.2022.942495,tbd,,OGC_AmsterdamUMC_biexp_segmented IVIM,Fitting,Bayesian,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion/Sebastiano Barbieri,Amsterdam UMC,fit_bayesian_array,https://doi.org/10.1002/mrm.28852,tbd,,OGC_AmsterdamUMC_Bayesian_biexp -IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd,,PvH_KB_NKI_IVIMfit.py +IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd,,PvH_KB_NKI_IVIMfit IVIM,Fitting,two-step (segmented) LSQ fitting, cut-off chosen for brain data; option to fit IVIM with inversion recovery or without IR,PV_MUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/PV_MUMC/,Paulien Voorter,Maastricht University Medical Center,two_step_IVIM_fit.py,,tbd,,PV_MUMC_biexp IVIM,Fitting,bi-exponential NLLS,Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_biexp.py,Ivan A. Rashid,Lund University,IvimModelBiexp,tba,tbd,,IAR_LU_biexp -IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D before a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_2step.py,Ivan A. Rashid,Lund University,IvimModelSegmented2Step,tba,tbd,,IAR_LU_segmented_2step.py -IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an estimate of D* followed by a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_3step.py,Ivan A. Rashid,Lund University,IvimModelSegmented3Step,tba,tbd,,IAR_LU_segmented_3step.py +IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D before a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_2step.py,Ivan A. Rashid,Lund University,IvimModelSegmented2Step,tba,tbd,,IAR_LU_segmented_2step +IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an estimate of D* followed by a bi-exponential NLLS fit. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_segmented_3step.py,Ivan A. Rashid,Lund University,IvimModelSegmented3Step,tba,tbd,,IAR_LU_segmented_3step IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D. Subtracts the diffusion signal and estimated D*. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_subtracted.py,Ivan A. Rashid,Lund University,IvimModelSubtracted,tba,tbd,,IAR_LU_subtracted IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_mix.py,Farooq et al. Modified by Ivan A. Rashid,Lund University,IvimModelVP,https://doi.org/10.1038/srep38927,tbd,,IAR_LU_modified_mix -IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd,,IAR_LundUniversity_topopro +IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd,,IAR_LU_modified_topopro IVIM,Fitting,Linear fit,Linear fit for D with extrapolation for f. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_linear.py,Modified by Ivan A. Rashid,Lund University,IvimModelLinear,tba,tbd,,no IVIM,Fitting,sIVIM fit,NLLS of the simplified IVIM model (sIVIM). Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_sivim.py,Modified by Ivan A. Rashid,Lund University,IvimModelsIVIM,tba,tbd,,no IVIM,Fitting,Segmented NLLS fitting,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,OJ_GU_seg diff --git a/utilities/repostatus.py b/utilities/repostatus.py index 294f81d..659f0d9 100644 --- a/utilities/repostatus.py +++ b/utilities/repostatus.py @@ -3,10 +3,10 @@ import json # directory of the current script -script_dir = os.path.dirname(os.path.abspath(__file__)) +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) # path to the repository -REPO_DIR = os.path.dirname(script_dir) +REPO_DIR = os.path.dirname(SCRIPT_DIR) CODE_CONTRIBUTIONS_FILE = os.path.join(REPO_DIR, "doc", "code_contributions_record.csv") ALGORITHMS_FILE = os.path.join(REPO_DIR, "tests", "IVIMmodels", "unit_tests", "algorithms.json") @@ -31,33 +31,18 @@ if not os.path.exists(subfolder_path): print(f"Warning: Subfolder '{subfolder}' does not exist in the source folder.") -# Add column 'Tested' to the DataFrame if it starts with that of subfolder -df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm.startswith(row['subfolder'].split('_')[0]) for algorithm in all_algorithms) else 'No', axis=1) - -# Parse files in the WRAPPED_FOLDER -wrapped_algorithms = [] -for root, dirs, files in os.walk(WRAPPED_FOLDER): - for file in files: - if file.endswith('.py'): - file_path = os.path.join(root, file) - with open(file_path, 'r') as f: - content = f.read() - for algorithm in all_algorithms: - if algorithm in content: - wrapped_algorithms.append(algorithm) - -# Add a column 'Wrapped' to the DataFrame -df['Wrapped'] = df.apply(lambda row: 'Yes' if any(algorithm.startswith(row['subfolder'].split('_')[0]) for algorithm in wrapped_algorithms) else 'No', axis=1) +# Add column 'Tested' to the DataFrame based on a match with algorithms and wrapped column +df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm in row['wrapped'] for algorithm in all_algorithms) else 'No', axis=1) # Select the desired columns -df_selected = df[['Technique', 'subfolder', 'Authors', 'Tested', 'Wrapped']] -df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Tested', 'Wrapped'] +df_selected = df[['Technique', 'subfolder', 'Authors', 'Tested', 'wrapped']] +df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Tested', 'wrapped'] # Convert the DataFrame to HTML html_string = df_selected.to_html(index=False) # Save the HTML to a file -with open(os.path.join(REPO_DIR, 'combined_report.html'), 'w') as f: +with open(os.path.join(REPO_DIR, 'website','combined_report.html'), 'w') as f: f.write(html_string) # Printing message that report has been successfully generated diff --git a/website/combined_report.html b/website/combined_report.html index ca9608c..f085bcb 100644 --- a/website/combined_report.html +++ b/website/combined_report.html @@ -5,7 +5,7 @@ Subfolder Contributors Tested - Wrapped + wrapped @@ -13,134 +13,134 @@ IVIM OGC_AmsterdamUMC Oliver Gurney-Champion - Yes - Yes + No + no IVIM OGC_AmsterdamUMC Oliver Gurney-Champion Yes - Yes + OGC_AmsterdamUMC_biexp Tri-exponential OGC_AmsterdamUMC Oliver Gurney-Champion - Yes - Yes + No + no Tri-exponential OGC_AmsterdamUMC Oliver Gurney-Champion Yes - Yes + OGC_AmsterdamUMC_biexp_segmented IVIM OGC_AmsterdamUMC Oliver Gurney-Champion/Sebastiano Barbieri Yes - Yes + OGC_AmsterdamUMC_Bayesian_biexp IVIM PvH_KB_NKI Petra van Houdt/Stefan Zijlema/Koen Baas Yes - Yes + PvH_KB_NKI_IVIMfit IVIM PV_MUMC Paulien Voorter Yes - Yes + PV_MUMC_biexp IVIM IAR_LundUniversity Ivan A. Rashid Yes - Yes + IAR_LU_biexp IVIM IAR_LundUniversity Ivan A. Rashid Yes - Yes + IAR_LU_segmented_2step IVIM IAR_LundUniversity Ivan A. Rashid Yes - Yes + IAR_LU_segmented_3step IVIM IAR_LundUniversity Ivan A. Rashid Yes - Yes + IAR_LU_subtracted IVIM IAR_LundUniversity Farooq et al. Modified by Ivan A. Rashid Yes - Yes + IAR_LU_modified_mix IVIM IAR_LundUniversity Fadnavis et al. Modified by Ivan A. Rashid Yes - Yes + IAR_LU_modified_topopro IVIM IAR_LundUniversity Modified by Ivan A. Rashid - Yes - Yes + No + no IVIM IAR_LundUniversity Modified by Ivan A. Rashid - Yes - Yes + No + no IVIM OJ_GU Oscar Jalnefjord No - No + OJ_GU_seg IVIM OJ_GU Oscar Jalnefjord No - No + no IVIM OJ_GU Oscar Jalnefjord No - No + no IVIM ETP_SRI Eric Peterson Yes - Yes + ETP_SRI_LinearFitting \ No newline at end of file From 992147d90e82f22ab29fc7dc4245e091fb364f61 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Thu, 11 Apr 2024 13:23:45 +0530 Subject: [PATCH 09/11] Refactor column names in repostatus.py and combined_report.html --- doc/code_contributions_record.csv | 14 ++++----- utilities/repostatus.py | 7 +++-- website/combined_report.html | 52 +++++++++++++++---------------- 3 files changed, 37 insertions(+), 36 deletions(-) diff --git a/doc/code_contributions_record.csv b/doc/code_contributions_record.csv index e3c8e10..54a5675 100644 --- a/doc/code_contributions_record.csv +++ b/doc/code_contributions_record.csv @@ -1,7 +1,7 @@ -Technique,Category,Subcategory,notes,subfolder,Link to source code,Authors,Institution,function/module,DOI,Tester,test status,wrapped -IVIM,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares/fit_least_squares_array,,tbd,,no +Technique,Category,Subcategory,notes,subfolder,Link to source code,Authors,Institution,function/module,DOI,Tester,test status,Wrapped +IVIM,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares/fit_least_squares_array,,tbd,, IVIM,Fitting,segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented/fit_segmented_array,,tbd,,OGC_AmsterdamUMC_biexp -Tri-exponential,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares_tri_exp/fit_least_squares_array_tri_exp,,tbd,,no +Tri-exponential,Fitting,LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_least_squares_tri_exp/fit_least_squares_array_tri_exp,,tbd,, Tri-exponential,Fitting,Segmented LSQ fitting,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion,Amsterdam UMC,fit_segmented_tri_exp/fit_segmented_array_tri_exp,https://doi.org/10.3389/fphys.2022.942495,tbd,,OGC_AmsterdamUMC_biexp_segmented IVIM,Fitting,Bayesian,,OGC_AmsterdamUMC,TF2.4_IVIM-MRI_CodeCollection/src/original/OGC_AmsterdamUMC/,Oliver Gurney-Champion/Sebastiano Barbieri,Amsterdam UMC,fit_bayesian_array,https://doi.org/10.1002/mrm.28852,tbd,,OGC_AmsterdamUMC_Bayesian_biexp IVIM,Fitting,two-step segmented fit approach,also includes ADC calculation as a separate function,PvH_KB_NKI,TF2.4_IVIM-MRI_CodeCollection/src/original/PvH_KB_NKI/,Petra van Houdt/Stefan Zijlema/Koen Baas,the Netherlands Cancer Institute,DWI_functions_standalone.py,https://doi.org/10.3389/fonc.2021.705964,tbd,,PvH_KB_NKI_IVIMfit @@ -12,9 +12,9 @@ IVIM,Fitting,3-step segmented NLLS,First estimates and fixes D followed by an es IVIM,Fitting,2-step segmented NLLS,First estimates and fixes D. Subtracts the diffusion signal and estimated D*. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_subtracted.py,Ivan A. Rashid,Lund University,IvimModelSubtracted,tba,tbd,,IAR_LU_subtracted IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_mix.py,Farooq et al. Modified by Ivan A. Rashid,Lund University,IvimModelVP,https://doi.org/10.1038/srep38927,tbd,,IAR_LU_modified_mix IVIM,Fitting,Variable projection,See referenced article. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_topopro.py,Fadnavis et al. Modified by Ivan A. Rashid,Lund University,IvimModelTopoPro,https://doi.org/10.3389/fnins.2021.779025,tbd,,IAR_LU_modified_topopro -IVIM,Fitting,Linear fit,Linear fit for D with extrapolation for f. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_linear.py,Modified by Ivan A. Rashid,Lund University,IvimModelLinear,tba,tbd,,no -IVIM,Fitting,sIVIM fit,NLLS of the simplified IVIM model (sIVIM). Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_sivim.py,Modified by Ivan A. Rashid,Lund University,IvimModelsIVIM,tba,tbd,,no +IVIM,Fitting,Linear fit,Linear fit for D with extrapolation for f. Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_linear.py,Modified by Ivan A. Rashid,Lund University,IvimModelLinear,tba,tbd,, +IVIM,Fitting,sIVIM fit,NLLS of the simplified IVIM model (sIVIM). Supports units in mm2/s and µm2/ms,IAR_LundUniversity,TF2.4_IVIM-MRI_CodeCollection/src/original/IAR_LundUniversity/ivim_fit_method_modified_sivim.py,Modified by Ivan A. Rashid,Lund University,IvimModelsIVIM,tba,tbd,, IVIM,Fitting,Segmented NLLS fitting,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,OJ_GU_seg -IVIM,Fitting,Bayesian,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_bayes,https://doi.org/10.1002/mrm.26783,tbd,,no -IVIM,Fitting,Segmented NLLS fitting,Specifically tailored algorithm for NLLS segmented fitting,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,,no +IVIM,Fitting,Bayesian,MATLAB code,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,IVIM_bayes,https://doi.org/10.1002/mrm.26783,tbd,, +IVIM,Fitting,Segmented NLLS fitting,Specifically tailored algorithm for NLLS segmented fitting,OJ_GU,TF2.4_IVIM-MRI_CodeCollection/src/original/OJ_GU/,Oscar Jalnefjord,University of Gothenburg,seg,https://doi.org/10.1007/s10334-018-0697-5,tbd,, IVIM,Fitting,Linear fit,Linear fit for D and D* and f. Intended to be extremely fast but not always accurate,ETP_SRI,TF2.4_IVIM-MRI_CodeCollection/src/original/ETP_SRI/LinearFitting.py,Eric Peterson,SRI International,,,tbd,,ETP_SRI_LinearFitting \ No newline at end of file diff --git a/utilities/repostatus.py b/utilities/repostatus.py index 659f0d9..2330167 100644 --- a/utilities/repostatus.py +++ b/utilities/repostatus.py @@ -32,11 +32,12 @@ print(f"Warning: Subfolder '{subfolder}' does not exist in the source folder.") # Add column 'Tested' to the DataFrame based on a match with algorithms and wrapped column -df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm in row['wrapped'] for algorithm in all_algorithms) else 'No', axis=1) +df['Wrapped'] = df['Wrapped'].fillna('') +df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm in row['Wrapped'] for algorithm in all_algorithms) else '', axis=1) # Select the desired columns -df_selected = df[['Technique', 'subfolder', 'Authors', 'Tested', 'wrapped']] -df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Tested', 'wrapped'] +df_selected = df[['Technique', 'subfolder', 'Authors', 'Wrapped', 'Tested']] +df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Wrapped', 'Tested'] # Convert the DataFrame to HTML html_string = df_selected.to_html(index=False) diff --git a/website/combined_report.html b/website/combined_report.html index f085bcb..d7e7548 100644 --- a/website/combined_report.html +++ b/website/combined_report.html @@ -4,8 +4,8 @@ Technique Subfolder Contributors + Wrapped Tested - wrapped @@ -13,134 +13,134 @@ IVIM OGC_AmsterdamUMC Oliver Gurney-Champion - No - no + + IVIM OGC_AmsterdamUMC Oliver Gurney-Champion - Yes OGC_AmsterdamUMC_biexp + Yes Tri-exponential OGC_AmsterdamUMC Oliver Gurney-Champion - No - no + + Tri-exponential OGC_AmsterdamUMC Oliver Gurney-Champion - Yes OGC_AmsterdamUMC_biexp_segmented + Yes IVIM OGC_AmsterdamUMC Oliver Gurney-Champion/Sebastiano Barbieri - Yes OGC_AmsterdamUMC_Bayesian_biexp + Yes IVIM PvH_KB_NKI Petra van Houdt/Stefan Zijlema/Koen Baas - Yes PvH_KB_NKI_IVIMfit + Yes IVIM PV_MUMC Paulien Voorter - Yes PV_MUMC_biexp + Yes IVIM IAR_LundUniversity Ivan A. Rashid - Yes IAR_LU_biexp + Yes IVIM IAR_LundUniversity Ivan A. Rashid - Yes IAR_LU_segmented_2step + Yes IVIM IAR_LundUniversity Ivan A. Rashid - Yes IAR_LU_segmented_3step + Yes IVIM IAR_LundUniversity Ivan A. Rashid - Yes IAR_LU_subtracted + Yes IVIM IAR_LundUniversity Farooq et al. Modified by Ivan A. Rashid - Yes IAR_LU_modified_mix + Yes IVIM IAR_LundUniversity Fadnavis et al. Modified by Ivan A. Rashid - Yes IAR_LU_modified_topopro + Yes IVIM IAR_LundUniversity Modified by Ivan A. Rashid - No - no + + IVIM IAR_LundUniversity Modified by Ivan A. Rashid - No - no + + IVIM OJ_GU Oscar Jalnefjord - No OJ_GU_seg + IVIM OJ_GU Oscar Jalnefjord - No - no + + IVIM OJ_GU Oscar Jalnefjord - No - no + + IVIM ETP_SRI Eric Peterson - Yes ETP_SRI_LinearFitting + Yes \ No newline at end of file From 6ab39b5b94cb55b9325462f0cb3fcd1c2372e9d7 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Tue, 16 Apr 2024 10:53:30 +0530 Subject: [PATCH 10/11] Add zenodo-get, sphinx, and sphinx_rtd_theme to requirements.txt --- requirements.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/requirements.txt b/requirements.txt index 9a76d4f..4da7b9e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,6 +8,9 @@ dipy matplotlib scienceplots cvxpy +zenodo-get pytest tqdm +sphinx +sphinx_rtd_theme pandas \ No newline at end of file From 4a148b844a75337fdf98fc255ebbc69cb0473549 Mon Sep 17 00:00:00 2001 From: abhicodes369 <119055274+abhicodes369@users.noreply.github.com> Date: Tue, 16 Apr 2024 23:45:06 +0530 Subject: [PATCH 11/11] wrap the html into a function --- utilities/repostatus.py | 68 +++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 26 deletions(-) diff --git a/utilities/repostatus.py b/utilities/repostatus.py index 2330167..9ced72f 100644 --- a/utilities/repostatus.py +++ b/utilities/repostatus.py @@ -13,38 +13,54 @@ SOURCE_FOLDER = os.path.join(REPO_DIR, "src", "original") WRAPPED_FOLDER = os.path.join(REPO_DIR, "src", "standardized") -# Read the CSV file -df = pd.read_csv(CODE_CONTRIBUTIONS_FILE) +def generate_html(): + """ + Generates an HTML report based on the code contributions and algorithm information. -unique_subfolders = df['subfolder'].unique().tolist() + The report includes the following columns: + - Technique + - Subfolder + - Contributors + - Wrapped + - Tested -# Read the JSON file -with open(ALGORITHMS_FILE, 'r') as f: - algorithms_data = json.load(f) + The report is saved as 'combined_report.html' in the 'website' directory of the repository. + """ + # Read the CSV file + df = pd.read_csv(CODE_CONTRIBUTIONS_FILE) -# list of all algorithms from the JSON file -all_algorithms = algorithms_data['algorithms'] + unique_subfolders = df['subfolder'].unique().tolist() -# Check if both code_contributions_file matches with source folder -for subfolder in unique_subfolders: - subfolder_path = os.path.join(SOURCE_FOLDER, subfolder) - if not os.path.exists(subfolder_path): - print(f"Warning: Subfolder '{subfolder}' does not exist in the source folder.") + # Read the JSON file + with open(ALGORITHMS_FILE, 'r') as f: + algorithms_data = json.load(f) -# Add column 'Tested' to the DataFrame based on a match with algorithms and wrapped column -df['Wrapped'] = df['Wrapped'].fillna('') -df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm in row['Wrapped'] for algorithm in all_algorithms) else '', axis=1) + # list of all algorithms from the JSON file + all_algorithms = algorithms_data['algorithms'] -# Select the desired columns -df_selected = df[['Technique', 'subfolder', 'Authors', 'Wrapped', 'Tested']] -df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Wrapped', 'Tested'] + # Check if both code_contributions_file matches with source folder + for subfolder in unique_subfolders: + subfolder_path = os.path.join(SOURCE_FOLDER, subfolder) + if not os.path.exists(subfolder_path): + print(f"Warning: Subfolder '{subfolder}' does not exist in the source folder.") -# Convert the DataFrame to HTML -html_string = df_selected.to_html(index=False) + # Add column 'Tested' to the DataFrame based on a match with algorithms and wrapped column + df['Wrapped'] = df['Wrapped'].fillna('') + df['Tested'] = df.apply(lambda row: 'Yes' if any(algorithm in row['Wrapped'] for algorithm in all_algorithms) else '', axis=1) -# Save the HTML to a file -with open(os.path.join(REPO_DIR, 'website','combined_report.html'), 'w') as f: - f.write(html_string) + # Select the desired columns + df_selected = df[['Technique', 'subfolder', 'Authors', 'Wrapped', 'Tested']] + df_selected.columns = ['Technique', 'Subfolder', 'Contributors', 'Wrapped', 'Tested'] -# Printing message that report has been successfully generated -print("Combined HTML report generated successfully.") \ No newline at end of file + # Convert the DataFrame to HTML + html_string = df_selected.to_html(index=False) + + # Save the HTML to a file + with open(os.path.join(REPO_DIR, 'website', 'combined_report.html'), 'w') as f: + f.write(html_string) + + # Printing message that report has been successfully generated + print("Combined HTML report generated successfully.") + +if __name__ == "__main__": + generate_html() \ No newline at end of file