A Python package for simulating survival data, inspired by the R package genSurv
Project description
gen_surv
gen_surv is a Python package for simulating survival data under a variety of models, inspired by the R package genSurv. It supports data generation for:
- Cox Proportional Hazards Models (CPHM)
- Continuous-Time Markov Models (CMM)
- Time-Dependent Covariate Models (TDCM)
- Time-Homogeneous Hidden Markov Models (THMM)
๐ฆ Installation
poetry install
โจ Features
- Consistent interface across models
- Censoring support (
uniformorexponential) - Easy integration with
pandasandNumPy - Suitable for benchmarking survival algorithms and teaching
- Accelerated Failure Time (Log-Normal) model generator
- Command-line interface powered by
Typer
๐งช Example
from gen_surv import generate
# CPHM
generate(model="cphm", n=100, model_cens="uniform", cens_par=1.0, beta=0.5, covar=2.0)
# AFT Log-Normal
generate(model="aft_ln", n=100, beta=[0.5, -0.3], sigma=1.0, model_cens="exponential", cens_par=3.0)
# CMM
generate(model="cmm", n=100, model_cens="exponential", cens_par=2.0,
qmat=[[0, 0.1], [0.05, 0]], p0=[1.0, 0.0])
# TDCM
generate(model="tdcm", n=100, dist="weibull", corr=0.5,
dist_par=[1, 2, 1, 2], model_cens="uniform", cens_par=1.0,
beta=[0.1, 0.2, 0.3], lam=1.0)
# THMM
generate(model="thmm", n=100, qmat=[[0, 0.2, 0], [0.1, 0, 0.1], [0, 0.3, 0]],
emission_pars={"mu": [0.0, 1.0, 2.0], "sigma": [0.5, 0.5, 0.5]},
p0=[1.0, 0.0, 0.0], model_cens="exponential", cens_par=3.0)
โจ๏ธ Command-Line Usage
Install the package and use python -m gen_surv to generate datasets without
writing Python code:
python -m gen_surv dataset aft_ln --n 100 > data.csv
๐ง Available Generators
| Function | Description |
|---|---|
gen_cphm() |
Cox Proportional Hazards Model |
gen_cmm() |
Continuous-Time Multi-State Markov Model |
gen_tdcm() |
Time-Dependent Covariate Model |
gen_thmm() |
Time-Homogeneous Markov Model |
gen_aft_log_normal() |
Accelerated Failure Time Log-Normal |
genSurvPy/
โโโ gen_surv/ # Pacote principal
โ โโโ __main__.py # Interface CLI via python -m
โ โโโ cphm.py
โ โโโ cmm.py
โ โโโ tdcm.py
โ โโโ thmm.py
โ โโโ censoring.py
โ โโโ bivariate.py
โ โโโ validate.py
โ
โโโ tests/ # Testes automatizados
โ โโโ test_cphm.py
โ โโโ test_cmm.py
โ โโโ test_tdcm.py
โ โโโ test_thmm.py
โ
โโโ examples/ # Exemplos de uso
โ โโโ run_cphm.py
โ โโโ ...
โ
โโโ pyproject.toml # Configurado com Poetry
โโโ README.md
โโโ LICENSE
โโโ .gitignore
๐ง License
MIT License. See LICENSE for details.
๐ Release Process
This project uses Git tags to manage releases. A GitHub Actions workflow
(version-check.yml) verifies that the version declared in pyproject.toml
matches the latest Git tag. If they diverge, the workflow fails and prompts a
correction before merging. Run python scripts/check_version_match.py locally
before creating a tag to catch issues early.
๐ Code of Conduct
Please read our Code of Conduct to learn about the expectations for participants in this project.
๐ค Contributing
Please read CONTRIBUTING.md for guidelines on setting up your environment, running tests, and submitting pull requests.
๐ Citation
If you use gen_surv in your work, please cite it using the metadata in
CITATION.cff. Many reference managers can import this file
directly.
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 gen_surv-1.0.5.tar.gz.
File metadata
- Download URL: gen_surv-1.0.5.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.0 CPython/3.9.13 Darwin/24.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de20d0cb836cf77f67184d9ad771fc0c5e5c05b6b7aa2014db0b5c0f7f9d880a
|
|
| MD5 |
e8ec5d3e9171a8e2b8d964490138ba4e
|
|
| BLAKE2b-256 |
d5e72fe01ecd26599c78f2b31de082062961875e02b0b7250f87a03a11867b6d
|
File details
Details for the file gen_surv-1.0.5-py3-none-any.whl.
File metadata
- Download URL: gen_surv-1.0.5-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.0.0 CPython/3.9.13 Darwin/24.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a48a9d72ea5dcbc8d967a2576ee510b69928fc32914842728e507525bb0ab0f3
|
|
| MD5 |
2eb05ff36f9bf3abc9697bac11d09856
|
|
| BLAKE2b-256 |
20eb3adccc18f9c71a807e24cc5049376d310d63027ce42878e96cbdc77bda3c
|