Reproducibility¶
gp3sequencespy is developed with a frozen-reference and audit-first approach.
Frozen reference¶
The scientific reference is gp3sequences 0.3.0. The Python release preserves
the frozen public-function contract while documenting legitimate Python-native
translations.
Current validated release status:
- 81 / 81 frozen public R function counterparts;
- 81 / 81 audited frozen public signatures;
- 130 / 130 translated frozen R
test_that()blocks; - 182 Python tests;
- deterministic R/Python oracle tranches for core summaries, hierarchical/PAM clustering, and the time-varying backend;
- explicit cross-language exceptions documented rather than hidden.
Recommended reproducible workflow¶
- Pin the package version.
- Preserve the raw ordered event table.
- Record validation and preparation policies.
- Record method parameters and seeds.
- Save analysis summaries and audit objects.
- Preserve the Python environment / lockfile.
- Report deliberate cross-language boundaries.
For uv projects:
Audit the input¶
import gp3sequencespy as g
audit = g.audit_sequence_data(
data,
"sequence_id",
"sequence_order",
"state",
)
Audit the analysis¶
Randomness¶
Randomized algorithms use NumPy's random-number generator rather than R's RNG. The scientific contract is deterministic Python seeding and statistical behavior, not bit-identical draws across languages.
Always record seeds for:
- bootstrap clustering;
- bootstrap group differences;
- bootstrap transition networks;
- HMM / mixture fitting;
- permutation-based group inference;
- any stochastic downstream analysis.
Cross-language boundaries¶
The main deliberate boundaries are:
- R ecosystem object identity versus Python-native structured adapters;
- base-R graphics versus Matplotlib;
- R RNG streams versus NumPy RNG streams;
- R
mgcvversus the validatedmssmtranslation for time-varying models.
See Parity & validation for the detailed contract.
Release provenance¶
Version 0.1.1 is published on GitHub and PyPI. PyPI publication is performed
through GitHub Actions Trusted Publishing / OIDC, avoiding a stored package
upload token.
The original 0.1.0 scientific artifacts remain immutable. Version 0.1.1 does not change the scientific algorithms or frozen public scientific API.
Citation¶
- Repository:
stefanosbalaskas/gp3sequencespy - Release:
0.1.1 - Zenodo DOI:
10.5281/zenodo.22166449