Joint Progression Modeling (JPM): A Probabilistic Framework for Mixed-Pathology Progression
Project description
pyjpm
Installation
pip install pyjpm
Data generation
To run gen.py first. Then to generate partial ordering datasets. gen_partial.py.
Change Log
-
2025-07-16 (V 0.0.6)
- Added
mp_method = BTinalgorithm.pyandrun.py. - Added
PL. - Fixed the bug in
generate_data.py.
- Added
-
2025-07-19 (V 0.0.7)
- Added the class of
PlackettLuce.
- Added the class of
-
2025-07-20 (V 0.0.15)
- Updated the definition and implementation of conflict and certainty.
- Made sure
datafolder exists after uploading to pypi. - Made sure
fixed_biomarker_order = Trueif we use mixed patholgy in data generation. - Fixed a bug in the calculation of
conflict. - Made sure the
algorithm.pyis using the correct energy calculation functions. - Added entropy and certainty calculation in
MCMCsampler. - Made sure in
generate_data.py,certaintyis calculated based upon themp_method. - Made sure in
generate_data.py, we can tweak the paramter ofmcmc_iterations, otherwise it will super slow. This is because the time complexity ismcmc_iterations * sample_count. - Tested obtaining
ordering_arrayfrom separate disease data files. Made some modifcations inalgorithm.pyto allow this.
-
2025-07-23 (V 0.0.16 -- didn't push to Pypi)
- Implemented the conflict version of using only discordant pairs.
-
2025-07-25 (V 0.0.16)
- Updated
algorithm.pyto reflect changes in the class ofPlackettLuce.
- Updated
-
2025-07-26 (V 0.0.17)
- Updated
generate_data.pyto skip calculating certainty and conflict ifsample_count <= 1.
- Updated
-
2025-08-04 (V 0.1.7)
- Use
fastsaebmcodes. - Finished testing and data generation.
- With
m_{variant}when number of repitition is 1. - Fixed overflow bug in
prob_accept=min(1.0, np.exp(current_energy - new_energy)).
- Use
-
2025-08-04 (V 0.2.9)
- Implemented the new certainty measure.
- Used the same
rngall throughout in generate data. - Added
save_detailstorun.py. - Solved the logic bug of
save_detailsandsave_results. - Ensured the randomness again in
generate_data.py.
-
2025-08-09 (V 0.3.1)
- Used 15 biomarkers.
- Dynamically adjust dirichlet multinomial alpha array based on the number of biomarkers.
-
2025-08-10 (V 0.3.3)
- Use numpy and numba (whenever possible) in
mp_utils.py.
- Use numpy and numba (whenever possible) in
-
2025-08-11 (V 0.3.6)
- Updated numba version
-
2025-08-12 (V 0.3.9)
- Kept improving the numba version. Now it's faster.
- Include MCMC in PL sampling as well.
-
2025-08-11 (V 0.4.0)
- Add RMJ distance mallows.
-
2025-08-16 (V 0.4.2)
- Try all
njitinmp_utils.py. I want to test it on CHTC.
- Try all
-
2025-08-17 (V 0.4.4)
- I know using
np.randomis not helpful inshuffle_orderfunc. Change back to the slow version.
- I know using
-
2025-08-18 (V 0.4.10)
- Try to use rng in func of
obtain_affected_and_non_clusters. - In mallows, use BT for central ranking sampling.
- Added
theta = 100in mallows. - Added
mp_method = 'random'ingenerate_data.py. - Remobed
recodesfolder when running mp-ebm.
- Try to use rng in func of
-
2025-08-19 (V 0.4.19)
- Corrected an error: in data generation, for experiment 9, the noise_std should be max_length * noise_std_parameter rather than its square root. This is imprtant because after using square root, the noise_std in fact become larger, not smaller. For example, in our example where N = 10, the noise_std should be N*0.05 = 0.5, but after square root, it becomes 0.7. If N = 4, then std should be 02, but becomes 0.45 after square root.
- Added the
temperatureparameter for mallows sampling. - Reuse params inferred from individual diseases.
- Used biomarkers and theta/phi params obtained from NACC data analysis.
-
2025-08-20 (v 0.5.1)
- Used biomarkers and their theta/phi from both ADNI only.
- Changed
'random'to'Random'ingenerate_data.py. - Randomly choose two floats for new theta params for overlapping biomarkers.
-
2025-08-21 (V 0.5.4)
- Try only 12 biomarkers for params.
- Try 18 biomarkers for params.
- Add rnadom pertubations to overlapped biomarkers params.
-
2025-08-22 (V 0.5.6)
- Try scaling factor for energy in
mh.py
- Try scaling factor for energy in
-
2025-08-23 (V 0.5.9)
- Test differetn energy influence.
use_scaling
-
205-08-25 (V 0.6.0)
- Test
percentile.
- Test
-
205-08-26 (V 0.6.2)
- Added analysis about
alignmentandeffect_size.
- Added analysis about
-
2025-08-27 (V 0.6.7)
- Added
energy_priorandmodel_prior. - Mapped
energy_priortomallows_temperature.
- Added
-
2025-08-28 (V 0.6.9)
- Removed
energy_prior. Only use modelcalibration.
- Removed
-
2025-08-32 (V 0.7.3)
- Modified the data generation just like in subtypes.
-
2025-09-01 (V 0.7.4)
- Removed the forcing range of
event times.
- Removed the forcing range of
-
2025-09-03 (V 0.7.5)
- Added
save_databoolen togenerate_data.py.
- Added
-
2025-09-04 (V 0.8.0)
- Removed
calibration. We cannot use it. - Aligned with how i get staging with
pysaebm: completely blind, not even using healthy ratio and the learned stage prior. Only use the theta/phi. - Modified what to return in
run.py.
- Removed
-
2025-09-09 (V 0.8.1)
- Added plots back.
-
2025-09-21 (V 0.8.2)
- Removed
iteration >= burn_inwhen updating best_*.
- Removed
-
2025-10-08 (V 0.8.4)
- Used soft counts for conjugate prior updates.
-
2025-10-09 (V 0.8.6)
- Update the non-normal distribution parameters.
-
2025-11-09 (V 0.8.8)
- Changed the pkg name from
pympebmtopyjpm.
- Changed the pkg name from
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyjpm-0.8.8.tar.gz.
File metadata
- Download URL: pyjpm-0.8.8.tar.gz
- Upload date:
- Size: 178.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef76c249962e9dc2b122fde2ef8384ea85b932a03c5d282bad2a49bcc82a9ffe
|
|
| MD5 |
4a80277cc67c865f70e4adbf3c022d28
|
|
| BLAKE2b-256 |
ebd553ff399c2fae0301c01789edfa433f834576f2d7df80e9a840bf0607f943
|
File details
Details for the file pyjpm-0.8.8-py3-none-any.whl.
File metadata
- Download URL: pyjpm-0.8.8-py3-none-any.whl
- Upload date:
- Size: 221.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f4dd56051a37d78aaea489cd4e002b45fa5d54d7c113986b9662b1ade05ae283
|
|
| MD5 |
9ac1f0c99346ae77be4aea697c31e9ba
|
|
| BLAKE2b-256 |
064f0a48e216b71908bb5e70e24b433189284e2d3493bd50f085cb047fe2b7f8
|