pyaging 0.3.0__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyaging-0.3.0 → pyaging-0.3.1}/Makefile +2 -2
- {pyaging-0.3.0 → pyaging-0.3.1}/PKG-INFO +8 -10
- {pyaging-0.3.0 → pyaging-0.3.1}/README.md +8 -10
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/huggingface/README.md +2 -2
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/camilloh3k27ac.ipynb +6 -6
- {pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k27me3.ipynb +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/camilloh3k36me3.ipynb +6 -6
- {pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k4me1.ipynb +6 -6
- {pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k4me3.ipynb +6 -6
- {pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k9ac.ipynb +6 -6
- {pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k9me3.ipynb +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/camillopanhistone.ipynb +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/clock_explorer.css +8 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/clock_explorer.js +37 -22
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/clock_explorer_core.js +10 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/clock_glossary.csv +174 -174
- pyaging-0.3.1/docs/_static/clocks.json +1 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/custom.css +2 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/tests/clock_explorer_core.test.js +10 -3
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/environment.yml +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/camilloh3k27ac.ipynb +6 -6
- {pyaging-0.3.0/clocks/notebooks → pyaging-0.3.1/docs/source/clock_notebooks}/camilloh3k27me3.ipynb +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/camilloh3k36me3.ipynb +6 -6
- {pyaging-0.3.0/clocks/notebooks → pyaging-0.3.1/docs/source/clock_notebooks}/camilloh3k4me1.ipynb +6 -6
- {pyaging-0.3.0/clocks/notebooks → pyaging-0.3.1/docs/source/clock_notebooks}/camilloh3k4me3.ipynb +6 -6
- {pyaging-0.3.0/clocks/notebooks → pyaging-0.3.1/docs/source/clock_notebooks}/camilloh3k9ac.ipynb +6 -6
- {pyaging-0.3.0/clocks/notebooks → pyaging-0.3.1/docs/source/clock_notebooks}/camilloh3k9me3.ipynb +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/camillopanhistone.ipynb +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/make_clock_data.py +6 -6
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/test_make_clock_data.py +15 -7
- {pyaging-0.3.0 → pyaging-0.3.1/docs/source}/tutorials/tutorial_histonemarkchipseq.ipynb +3 -3
- pyaging-0.3.1/docs/superpowers/plans/2026-07-12-documentation-catalog-polish.md +267 -0
- pyaging-0.3.1/docs/superpowers/specs/2026-07-12-documentation-catalog-polish-design.md +112 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/__init__.py +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/data/_data.py +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/predict/_pred.py +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/predict/_pred_utils.py +2 -2
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/preprocess/_preprocess.py +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/preprocess/_preprocess_utils.py +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/utils/_hf.py +5 -3
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/utils/_utils.py +7 -7
- {pyaging-0.3.0 → pyaging-0.3.1}/pyproject.toml +1 -1
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/integration/test_hf_smoke.py +3 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/test_release_configuration.py +28 -18
- pyaging-0.3.1/tests/test_version.py +8 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/utils/test_hf.py +10 -2
- {pyaging-0.3.0/docs/source → pyaging-0.3.1}/tutorials/tutorial_histonemarkchipseq.ipynb +3 -3
- {pyaging-0.3.0 → pyaging-0.3.1}/uv.lock +1 -1
- pyaging-0.3.0/docs/_static/clocks.json +0 -1
- pyaging-0.3.0/tests/test_version.py +0 -8
- {pyaging-0.3.0 → pyaging-0.3.1}/.cursor/rules/best-practices.mdc +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/.github/workflows/ci.yml +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/.github/workflows/release.yml +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/.gitignore +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/.pre-commit-config.yaml +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/LICENSE +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/abec.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/adbahadosingh.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/altumage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/bitage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/bocklandt.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/bohlin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/cabec.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/cellpopage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/compil6.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/corticalclock.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/cpgptgrimage3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/cpgptpcgrimage3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ctsliver.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/cvdwesterman.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/deconvolutebloodepicbcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/deconvolutebloodepiccd4tcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/deconvolutebloodepiccd8tcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/deconvolutebloodepicmonocyte.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/deconvolutebloodepicneutrophil.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/deconvolutebloodepicnkcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/depressionbarbu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfili.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfitage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfitagegaitf.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfitagegaitm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfitagegripf.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfitagegripm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamfitagevo2max.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamic.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamphenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamstress.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dnamtl.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/downsyndrome.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dunedinpace.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/dunedinpoam38.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/eabec.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/encen100.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/encen40.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ensembleagehumanmouse.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ensembleagestatic.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ensembleagestatictop.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/epicga.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/epicmithyper.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/epicmithypo.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/epitoc1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/epitoc2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/epitoc3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/garagnani.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/gliasin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2adm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2b2m.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2cystatinc.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2gdf15.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2leptin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2loga1c.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2logcrp.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2packyrs.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2pai1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/grimage2timp1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/han.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/hannum.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/hep.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/hepatoxu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/horvath2013.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/hrsinchphenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/hypoclock.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/intrinclock.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/knight.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/leecontrol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/leerefinedrobust.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/leerobust.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/lin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalian1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalian2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalian3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalianblood2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalianblood3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalianfemale.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalianlifespan.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalianskin2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mammalianskin3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mayne.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneyalcohol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneybmi.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneybodyfat.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneyeducation.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneyhdlcholesterol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneyldlcholesterol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneysmoking.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneytotalcholesterol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneytotalhdlratio.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/mccartneywhr.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/meer.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/neusin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ocampoatac1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ocampoatac2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pasta.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pastamouse.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pcdnamtl.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pcgrimage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pchannum.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pchorvath2013.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pcphenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pcskinandblood.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pedbe.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/petkovich.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/phenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pipekelasticnet.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pipekfilteredh.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/pipekretrainedh.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/prostatecancerkirby.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/reedbmi.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/reg.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/replitali.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/replitalinorm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/retroelementagev1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/retroelementagev2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/senchronoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/sencultureage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/senmortalityage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/skinandblood.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/stemtoc.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/stemtocvitro.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/stoch.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/stocp.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/stocz.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/stubbs.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsageblood.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsagebrain.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsageheart.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsagehormone.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsageimmune.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsageinflammation.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsagekidney.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsageliver.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsagelung.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsagemetabolic.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/systemsagemusculoskeletal.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/template.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/thompson.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepicbas.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepicbmem.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepicbnv.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepiccd4mem.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepiccd4nv.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepiccd8mem.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepiccd8nv.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepiceos.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepicmono.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepicneu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepicnk.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/twelvecelldeconvolutebloodepictreg.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/vidalbralo.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/weidner.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/wu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/xchrom.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/ychrom.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/yingadaptage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/yingcausage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/yingdamage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/zhangblup.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/zhangen.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/notebooks/zhangmortality.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/clocks/update_all_clocks.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/Makefile +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/logo.png +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/pyaging_graphical_abstract.pdf +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/_static/pyaging_graphical_abstract.png +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/make.bat +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_glossary.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_implementation.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/abec.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/adbahadosingh.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/altumage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/bitage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/bocklandt.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/bohlin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/cabec.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/cellpopage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/compil6.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/corticalclock.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/cpgptgrimage3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/cpgptpcgrimage3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ctsliver.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/cvdwesterman.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/deconvolutebloodepicbcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/deconvolutebloodepiccd4tcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/deconvolutebloodepiccd8tcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/deconvolutebloodepicmonocyte.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/deconvolutebloodepicneutrophil.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/deconvolutebloodepicnkcell.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/depressionbarbu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfili.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfitage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfitagegaitf.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfitagegaitm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfitagegripf.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfitagegripm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamfitagevo2max.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamic.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamphenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamstress.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dnamtl.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/downsyndrome.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dunedinpace.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/dunedinpoam38.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/eabec.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/encen100.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/encen40.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ensembleagehumanmouse.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ensembleagestatic.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ensembleagestatictop.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/epicga.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/epicmithyper.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/epicmithypo.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/epitoc1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/epitoc2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/epitoc3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/garagnani.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/gliasin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2adm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2b2m.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2cystatinc.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2gdf15.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2leptin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2loga1c.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2logcrp.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2packyrs.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2pai1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/grimage2timp1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/han.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/hannum.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/hep.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/hepatoxu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/horvath2013.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/hrsinchphenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/hypoclock.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/intrinclock.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/knight.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/leecontrol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/leerefinedrobust.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/leerobust.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/lin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalian1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalian2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalian3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalianblood2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalianblood3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalianfemale.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalianlifespan.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalianskin2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mammalianskin3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mayne.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneyalcohol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneybmi.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneybodyfat.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneyeducation.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneyhdlcholesterol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneyldlcholesterol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneysmoking.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneytotalcholesterol.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneytotalhdlratio.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/mccartneywhr.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/meer.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/neusin.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ocampoatac1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ocampoatac2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pasta.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pastamouse.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pcdnamtl.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pcgrimage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pchannum.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pchorvath2013.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pcphenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pcskinandblood.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pedbe.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/petkovich.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/phenoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pipekelasticnet.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pipekfilteredh.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/pipekretrainedh.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/prostatecancerkirby.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/reedbmi.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/reg.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/replitali.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/replitalinorm.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/retroelementagev1.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/retroelementagev2.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/senchronoage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/sencultureage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/senmortalityage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/skinandblood.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/stemtoc.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/stemtocvitro.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/stoch.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/stocp.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/stocz.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/stubbs.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsageblood.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsagebrain.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsageheart.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsagehormone.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsageimmune.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsageinflammation.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsagekidney.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsageliver.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsagelung.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsagemetabolic.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/systemsagemusculoskeletal.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/template.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/thompson.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepicbas.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepicbmem.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepicbnv.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepiccd4mem.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepiccd4nv.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepiccd8mem.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepiccd8nv.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepiceos.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepicmono.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepicneu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepicnk.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/twelvecelldeconvolutebloodepictreg.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/vidalbralo.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/weidner.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/wu.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/xchrom.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/ychrom.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/yingadaptage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/yingcausage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/yingdamage.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/zhangblup.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/zhangen.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/clock_notebooks/zhangmortality.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/conf.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/index.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/installation.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/pyaging.data.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/pyaging.models.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/pyaging.predict.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/pyaging.preprocess.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/pyaging.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/pyaging.utils.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/index.rst +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_atacseq.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_bloodchemistry.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_cpgptgrimage3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_dnam_illumina_human_array.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_dnam_illumina_mammalian_array.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_dnam_rrbs.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_rnaseq.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/source/tutorials/tutorial_utils.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/plans/2026-07-05-docs-redesign.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/plans/2026-07-06-catalog-and-landing-polish.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/plans/2026-07-11-hugging-face-data-host-migration.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/specs/2026-07-04-missing-clocks-design.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/specs/2026-07-05-docs-redesign-design.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/specs/2026-07-06-catalog-and-landing-polish-design.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/docs/superpowers/specs/2026-07-11-hugging-face-data-host-migration-design.md +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/data/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/logger/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/logger/_logger.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/models/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/models/_base_models.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/models/_models.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/predict/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/predict/_postprocessing.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/predict/_preprocessing.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/preprocess/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/pyaging/utils/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/readthedocs.yaml +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/__init__.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/data/test_hf_data.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/predict/test_gold_standard.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/predict/test_hf_loading.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/preprocess/test_hf_metadata.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/test_no_aws_dependencies.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/test_notebook_hosts.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/test_update_all_clocks.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tests/utils/test_download.py +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_atacseq.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_bloodchemistry.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_cpgptgrimage3.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_dnam_illumina_human_array.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_dnam_illumina_mammalian_array.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_dnam_rrbs.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_rnaseq.ipynb +0 -0
- {pyaging-0.3.0 → pyaging-0.3.1}/tutorials/tutorial_utils.ipynb +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.PHONY: lint format update build install update-clocks-notebooks update-all-clocks verify-hf-auth verify-hf-data-repo-public create-hf-data-repo upload-clocks-to-hf upload-static-data-to-hf process-tutorials test test-tutorials docs version commit tag release release-slim
|
|
2
2
|
|
|
3
|
-
VERSION ?= v0.3.
|
|
3
|
+
VERSION ?= v0.3.1
|
|
4
4
|
HF_REPO_ID ?= lucascamillomd/pyaging-data
|
|
5
5
|
HF_REPO_OWNER ?= lucascamillomd
|
|
6
6
|
HF_STATIC_DIR ?= hf_static_data
|
|
@@ -101,7 +101,7 @@ docs:
|
|
|
101
101
|
@echo "Building documentation..."
|
|
102
102
|
cp tutorials/*.ipynb docs/source/tutorials
|
|
103
103
|
cp clocks/notebooks/*.ipynb docs/source/clock_notebooks
|
|
104
|
-
|
|
104
|
+
uv run make -C docs html
|
|
105
105
|
|
|
106
106
|
version:
|
|
107
107
|
@echo "Updating version in pyproject.toml to $(VERSION)..."
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyaging
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: A Python-based compendium of GPU-optimized aging clocks.
|
|
5
5
|
Project-URL: homepage, https://github.com/lucascamillomd/pyaging
|
|
6
6
|
Project-URL: repository, https://github.com/lucascamillomd/pyaging
|
|
@@ -41,15 +41,13 @@ Description-Content-Type: text/markdown
|
|
|
41
41
|
|
|
42
42
|
##
|
|
43
43
|
|
|
44
|
-
[](https://github.com/lucascamillomd/pyaging/actions/workflows/release.yml)
|
|
48
|
-
[](https://pyaging.readthedocs.io/en/latest/)
|
|
44
|
+
[](https://github.com/lucascamillomd/pyaging/actions/workflows/ci.yml)
|
|
45
|
+
[](https://github.com/lucascamillomd/pyaging/actions/workflows/release.yml)
|
|
46
|
+
[](https://pyaging.readthedocs.io/en/latest/)
|
|
49
47
|
[](https://doi.org/10.1093/bioinformatics/btae200)
|
|
50
|
-
[](https://pypi.org/project/pyaging/)
|
|
49
|
+
[](https://pepy.tech/project/pyaging)
|
|
50
|
+
[](https://github.com/lucascamillomd/pyaging/stargazers)
|
|
53
51
|
|
|
54
52
|
## 🐍 **pyaging**: a Python-based compendium of GPU-optimized aging clocks
|
|
55
53
|
|
|
@@ -83,4 +81,4 @@ To cite `pyaging`, please use the following:
|
|
|
83
81
|
url = {https://doi.org/10.1093/bioinformatics/btae200},
|
|
84
82
|
eprint = {https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btae200/57218155/btae200.pdf},
|
|
85
83
|
}
|
|
86
|
-
```
|
|
84
|
+
```
|
|
@@ -4,15 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
##
|
|
6
6
|
|
|
7
|
-
[](https://pepy.tech/project/pyaging)
|
|
15
|
-
[](https://github.com/lucascamillomd/pyaging/stargazers)
|
|
7
|
+
[](https://github.com/lucascamillomd/pyaging/actions/workflows/ci.yml)
|
|
8
|
+
[](https://github.com/lucascamillomd/pyaging/actions/workflows/release.yml)
|
|
9
|
+
[](https://pyaging.readthedocs.io/en/latest/)
|
|
10
|
+
[](https://doi.org/10.1093/bioinformatics/btae200)
|
|
11
|
+
[](https://pypi.org/project/pyaging/)
|
|
12
|
+
[](https://pepy.tech/project/pyaging)
|
|
13
|
+
[](https://github.com/lucascamillomd/pyaging/stargazers)
|
|
16
14
|
|
|
17
15
|
## 🐍 **pyaging**: a Python-based compendium of GPU-optimized aging clocks
|
|
18
16
|
|
|
@@ -46,4 +44,4 @@ To cite `pyaging`, please use the following:
|
|
|
46
44
|
url = {https://doi.org/10.1093/bioinformatics/btae200},
|
|
47
45
|
eprint = {https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btae200/57218155/btae200.pdf},
|
|
48
46
|
}
|
|
49
|
-
```
|
|
47
|
+
```
|
|
@@ -20,8 +20,8 @@ This public repository contains the model weights and data files used by
|
|
|
20
20
|
- Root-level example files support the pyaging tutorials.
|
|
21
21
|
- `supporting_files/` contains dependencies used to construct or document clocks.
|
|
22
22
|
|
|
23
|
-
Files used by the Python package are intentionally stored at the repository root
|
|
24
|
-
|
|
23
|
+
Files used by the Python package are intentionally stored at the repository root and
|
|
24
|
+
downloaded through the standard Hugging Face cache.
|
|
25
25
|
The `main` branch is the live data release and may change independently of the Python
|
|
26
26
|
package version.
|
|
27
27
|
|
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k27ac'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological-age predictor built with a deep neural network from genome-wide H3K27ac ChIP-seq signal, a mark of active enhancers and promoters, as part of a pan-tissue family of histone-mark aging clocks spanning human tissues and cell types.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'Multi-tissue (82 human tissue/cell types, ENCODE ChIP-seq biosamples, n=359 for H3K27ac)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'Humans, multiple tissues/cell types, embryonic through 90+ years, ~equal sex split'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 1275\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k27ac',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
{pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k27me3.ipynb
RENAMED
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k27me3'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological-age predictor built with a deep neural network from genome-wide H3K27me3 ChIP-seq signal, a Polycomb-associated repressive mark, as part of a pan-tissue family of histone-mark aging clocks spanning human tissues and cell types.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'Multi-tissue (pan-tissue human tissues and cell types, ~82 tissues/biosamples; ENCODE ChIP-seq)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'Pan-age humans (embryonic to elderly), pan-tissue'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 922\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k27me3',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k36me3'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological-age predictor built with a deep neural network from genome-wide H3K36me3 ChIP-seq signal, a mark of transcribed gene bodies, as part of a pan-tissue family of histone-mark aging clocks spanning human tissues and cell types.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'multi-tissue (human tissues and cell lines; ENCODE H3K36me3 ChIP-seq)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'humans; pan-tissue, broad age range'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 870\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k36me3',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
{pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k4me1.ipynb
RENAMED
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k4me1'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological-age predictor built with a deep neural network from genome-wide H3K4me1 ChIP-seq signal, a mark of enhancers, as part of a pan-tissue family of histone-mark aging clocks spanning human tissues and cell types.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'Multi-tissue (ENCODE human tissues and cell types; H3K4me1 ChIP-seq data, part of a larger dataset of 1,814 human samples across 82 tissues/cell types for 7 histone marks)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'Human, pan-tissue; ages spanning embryonic/fetal stages to 90+ years'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 892\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k4me1',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
{pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k4me3.ipynb
RENAMED
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k4me3'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological-age predictor built with a deep neural network from genome-wide H3K4me3 ChIP-seq signal, a mark of active promoters, as part of a pan-tissue family of histone-mark aging clocks spanning human tissues and cell types.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'Multi-tissue (82 human tissue/cell types; ENCODE ChIP-seq samples, n=359)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'Humans, pan-age (embryonic to 90+ years), ~equal male/female'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 1240\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k4me3',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
{pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k9ac.ipynb
RENAMED
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k9ac'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological-age predictor built with a deep neural network from genome-wide H3K9ac ChIP-seq signal, a mark of active promoters, as part of a pan-tissue family of histone-mark aging clocks spanning human tissues and cell types.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'Multi-tissue (human tissues and cell types; ENCODE ChIP-seq)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'Pan-age humans (fetal/embryonic to elderly)'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 102\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k9ac',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
{pyaging-0.3.0/docs/source/clock_notebooks → pyaging-0.3.1/clocks/notebooks}/camilloh3k9me3.ipynb
RENAMED
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camilloh3k9me3'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Chronological age predictor built from H3K9me3 histone-mark ChIP-seq signal, using this heterochromatin-associated modification profiled across diverse human tissues and cell types to estimate age via regularized regression on gene-level features.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'Multi-tissue (pan-tissue human tissues and cell types, from ENCODE H3K9me3 ChIP-seq)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'Humans, pan-tissue, wide age range (embryonic to 90+ years)'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 341\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camilloh3k9me3',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
|
@@ -148,10 +148,10 @@
|
|
|
148
148
|
"model.metadata[\"clock_name\"] = 'camillopanhistone'\n",
|
|
149
149
|
"model.metadata[\"data_type\"] = 'histone mark'\n",
|
|
150
150
|
"model.metadata[\"species\"] = 'Homo sapiens'\n",
|
|
151
|
-
"model.metadata[\"year\"] =
|
|
151
|
+
"model.metadata[\"year\"] = 2025\n",
|
|
152
152
|
"model.metadata[\"approved_by_author\"] = '✅'\n",
|
|
153
|
-
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and
|
|
154
|
-
"model.metadata[\"doi\"] = 'https://doi.org/10.
|
|
153
|
+
"model.metadata[\"citation\"] = \"de Lima Camillo, Lucas Paulo, et al. \\\"Histone mark age of human tissues and cell types.\\\" Science Advances 11.1 (2025): eadk9373.\"\n",
|
|
154
|
+
"model.metadata[\"doi\"] = 'https://doi.org/10.1126/sciadv.adk9373'\n",
|
|
155
155
|
"model.metadata[\"research_only\"] = None\n",
|
|
156
156
|
"model.metadata[\"notes\"] = \"Pan-tissue, pan-histone-mark age predictor that integrates ChIP-seq signal from multiple histone modifications across diverse human tissues, demonstrating that age is broadly encoded across the epigenome with accuracy comparable to DNA-methylation clocks.\"\n",
|
|
157
157
|
"model.metadata[\"tissue\"] = 'multi-tissue (82 distinct human tissues; also validated on primary cell types)'\n",
|
|
@@ -160,7 +160,7 @@
|
|
|
160
160
|
"model.metadata[\"model_type\"] = 'PCA + elastic net'\n",
|
|
161
161
|
"model.metadata[\"platform\"] = 'ChIP-seq'\n",
|
|
162
162
|
"model.metadata[\"population\"] = 'humans, pan-tissue, wide age range (embryonic to 90+ years)'\n",
|
|
163
|
-
"model.metadata[\"journal\"] = '
|
|
163
|
+
"model.metadata[\"journal\"] = 'Science Advances'\n",
|
|
164
164
|
"model.metadata[\"last_author\"] = 'Ritambhara Singh'\n",
|
|
165
165
|
"model.metadata[\"n_features\"] = 3739\n",
|
|
166
166
|
"model.metadata[\"citations\"] = 4\n",
|
|
@@ -438,10 +438,10 @@
|
|
|
438
438
|
"training: True\n",
|
|
439
439
|
"metadata: {'approved_by_author': '✅',\n",
|
|
440
440
|
" 'citation': 'de Lima Camillo, Lucas Paulo, et al. \"Histone mark age of human '\n",
|
|
441
|
-
" 'tissues and cells.\"
|
|
441
|
+
" 'tissues and cells.\" Science Advances 11.1 (2025): eadk9373.',\n",
|
|
442
442
|
" 'clock_name': 'camillopanhistone',\n",
|
|
443
443
|
" 'data_type': 'histone mark',\n",
|
|
444
|
-
" 'doi': 'https://doi.org/10.
|
|
444
|
+
" 'doi': 'https://doi.org/10.1126/sciadv.adk9373',\n",
|
|
445
445
|
" 'notes': None,\n",
|
|
446
446
|
" 'research_only': None,\n",
|
|
447
447
|
" 'species': 'Homo sapiens',\n",
|
|
@@ -57,6 +57,9 @@
|
|
|
57
57
|
.ce-scroll { max-height: 72vh; overflow: auto; border: 1px solid var(--ce-border); border-radius: 10px; }
|
|
58
58
|
.ce-table { width: 100%; border-collapse: collapse; white-space: nowrap; }
|
|
59
59
|
.ce-table th, .ce-table td { padding: 9px 12px; text-align: left; border-bottom: 1px solid var(--ce-border); }
|
|
60
|
+
.ce-table .ce-col-clock { min-width: 15rem; font-weight: 600; }
|
|
61
|
+
.ce-table .ce-col-approval, .ce-table .ce-col-num, .ce-table .ce-col-short { width: 1%; }
|
|
62
|
+
.ce-table .ce-col-long { min-width: 11rem; }
|
|
60
63
|
.ce-table thead th { position: sticky; top: 0; background: var(--ce-surface); cursor: pointer; user-select: none;
|
|
61
64
|
font-weight: 600; z-index: 1; }
|
|
62
65
|
.ce-table thead th.sort-asc::after { content: " ▲"; color: var(--ce-primary); }
|
|
@@ -64,6 +67,11 @@
|
|
|
64
67
|
.ce-num { text-align: right; font-variant-numeric: tabular-nums; }
|
|
65
68
|
.ce-row { cursor: pointer; }
|
|
66
69
|
.ce-row:hover { background: var(--ce-surface); }
|
|
70
|
+
.ce-approval { display: inline-flex; align-items: center; border-radius: 999px; padding: 2px 8px;
|
|
71
|
+
font-size: 0.72rem; font-weight: 600; }
|
|
72
|
+
.ce-approval.is-approved { color: #166534; background: #dcfce7; }
|
|
73
|
+
.ce-approval.is-pending { color: var(--ce-muted); background: var(--ce-surface); border: 1px solid var(--ce-border); }
|
|
74
|
+
html[data-theme="dark"] .ce-approval.is-approved { color: #bbf7d0; background: #14532d; }
|
|
67
75
|
.ce-expander-col { width: 26px; }
|
|
68
76
|
.ce-caret { display: inline-block; transition: transform 0.15s ease; color: var(--ce-muted); }
|
|
69
77
|
.ce-caret.open { transform: rotate(90deg); color: var(--ce-primary); }
|
|
@@ -12,38 +12,41 @@
|
|
|
12
12
|
data_type: "Data type", species: "Species", platform: "Platform",
|
|
13
13
|
model_type: "Model type", unit: "Unit", tissue: "Tissue",
|
|
14
14
|
last_author: "Last author", journal: "Journal", predicts: "Predicts",
|
|
15
|
-
population: "Population", approved_by_author: "
|
|
15
|
+
population: "Population", approved_by_author: "Verified",
|
|
16
16
|
};
|
|
17
17
|
var COLUMNS = [
|
|
18
|
-
{ key: "clock_name", label: "Clock", def: true },
|
|
19
|
-
{ key: "
|
|
20
|
-
{ key: "
|
|
21
|
-
{ key: "
|
|
22
|
-
{ key: "
|
|
23
|
-
{ key: "
|
|
24
|
-
{ key: "
|
|
25
|
-
{ key: "
|
|
26
|
-
{ key: "
|
|
27
|
-
{ key: "
|
|
28
|
-
{ key: "
|
|
29
|
-
{ key: "
|
|
30
|
-
{ key: "
|
|
31
|
-
{ key: "
|
|
18
|
+
{ key: "clock_name", label: "Clock", def: true, cls: "ce-col-clock" },
|
|
19
|
+
{ key: "approved_by_author", label: "Verified", def: true, cls: "ce-col-approval" },
|
|
20
|
+
{ key: "data_type", label: "Data type", def: true, cls: "ce-col-short" },
|
|
21
|
+
{ key: "species", label: "Species", def: true, cls: "ce-col-short" },
|
|
22
|
+
{ key: "year", label: "Year", def: true, num: true, cls: "ce-col-num" },
|
|
23
|
+
{ key: "citations", label: "Citations", def: true, num: true, cls: "ce-col-num" },
|
|
24
|
+
{ key: "n_features", label: "N features", def: true, num: true, cls: "ce-col-num" },
|
|
25
|
+
{ key: "unit", label: "Unit", def: true, cls: "ce-col-short" },
|
|
26
|
+
{ key: "model_type", label: "Model", def: true, cls: "ce-col-long" },
|
|
27
|
+
{ key: "platform", label: "Platform", def: true, cls: "ce-col-long" },
|
|
28
|
+
{ key: "predicts", label: "Predicts", def: true, cls: "ce-col-long" },
|
|
29
|
+
{ key: "tissue", label: "Tissue", def: true, cls: "ce-col-long" },
|
|
30
|
+
{ key: "population", label: "Population", def: true, cls: "ce-col-long" },
|
|
31
|
+
{ key: "last_author", label: "Last author", def: true, cls: "ce-col-long" },
|
|
32
|
+
{ key: "journal", label: "Journal", def: true, cls: "ce-col-long" },
|
|
32
33
|
];
|
|
33
34
|
var DETAIL_FIELDS = [
|
|
34
35
|
["predicts", "Predicts"], ["unit", "Unit"], ["tissue", "Tissue"],
|
|
35
36
|
["platform", "Platform"], ["population", "Population"], ["model_type", "Model type"],
|
|
36
37
|
["n_features", "N features"], ["year", "Year"], ["citations", "Citations"],
|
|
37
38
|
["last_author", "Last author"], ["journal", "Journal"], ["species", "Species"],
|
|
38
|
-
["data_type", "Data type"], ["approved_by_author", "
|
|
39
|
+
["data_type", "Data type"], ["approved_by_author", "Verified"],
|
|
39
40
|
];
|
|
40
41
|
// Every sortable table column is offered in the quick-sort dropdown so a
|
|
41
42
|
// column-header click always has a matching option and render() can re-sync
|
|
42
43
|
// the dropdown instead of leaving it showing a stale key.
|
|
43
|
-
var SORT_OPTIONS =
|
|
44
|
+
var SORT_OPTIONS = [{ key: "default", label: "Verified first, then name" }].concat(
|
|
45
|
+
COLUMNS.map(function (c) { return { key: c.key, label: c.label }; })
|
|
46
|
+
);
|
|
44
47
|
|
|
45
48
|
var state = {
|
|
46
|
-
clocks: [], selected: {}, search: "", sortKey: "
|
|
49
|
+
clocks: [], selected: {}, search: "", sortKey: "default", sortDir: "asc",
|
|
47
50
|
view: "table", cols: null, expanded: {},
|
|
48
51
|
};
|
|
49
52
|
var mount, body, sortSelEl, sortDirBtn, viewToggleBtns;
|
|
@@ -60,9 +63,15 @@
|
|
|
60
63
|
return COLUMNS.filter(function (c) { return state.cols[c.key]; });
|
|
61
64
|
}
|
|
62
65
|
function visible() {
|
|
63
|
-
|
|
66
|
+
var filtered = core.filterClocks(state.clocks, state.selected, state.search);
|
|
67
|
+
return state.sortKey === "default" ? core.defaultOrder(filtered) : core.sortClocks(filtered, state.sortKey, state.sortDir);
|
|
64
68
|
}
|
|
65
69
|
function fmt(v) { return v == null || v === "" ? "—" : String(v); }
|
|
70
|
+
function columnClass(col) { return (col.num ? "ce-num " : "") + (col.cls || ""); }
|
|
71
|
+
function approvalBadge(value) {
|
|
72
|
+
var verified = String(value || "").toLowerCase() === "by authors";
|
|
73
|
+
return el("span", "ce-approval " + (verified ? "is-approved" : "is-pending"), verified ? "By authors" : "Not yet");
|
|
74
|
+
}
|
|
66
75
|
|
|
67
76
|
// ---------- filter bar ----------
|
|
68
77
|
function boxKey(f, value) { return f + " " + value; }
|
|
@@ -224,6 +233,7 @@
|
|
|
224
233
|
sortDirBtn = el("button", "ce-btn ce-sortdir", state.sortDir === "desc" ? "▼" : "▲");
|
|
225
234
|
sortDirBtn.type = "button";
|
|
226
235
|
sortDirBtn.title = "Toggle sort direction";
|
|
236
|
+
sortDirBtn.setAttribute("aria-label", "Toggle sort direction");
|
|
227
237
|
sortDirBtn.addEventListener("click", function () {
|
|
228
238
|
state.sortDir = state.sortDir === "desc" ? "asc" : "desc";
|
|
229
239
|
render();
|
|
@@ -299,7 +309,7 @@
|
|
|
299
309
|
var thead = el("thead"), htr = el("tr");
|
|
300
310
|
htr.appendChild(el("th", "ce-expander-col", ""));
|
|
301
311
|
cols().forEach(function (col) {
|
|
302
|
-
var th = el("th", col
|
|
312
|
+
var th = el("th", columnClass(col), col.label);
|
|
303
313
|
if (state.sortKey === col.key) th.classList.add(state.sortDir === "desc" ? "sort-desc" : "sort-asc");
|
|
304
314
|
th.addEventListener("click", function () {
|
|
305
315
|
if (state.sortKey === col.key) state.sortDir = state.sortDir === "desc" ? "asc" : "desc";
|
|
@@ -318,8 +328,8 @@
|
|
|
318
328
|
exp.appendChild(el("span", "ce-caret" + (state.expanded[c.clock_name] ? " open" : ""), "▸"));
|
|
319
329
|
tr.appendChild(exp);
|
|
320
330
|
cols().forEach(function (col) {
|
|
321
|
-
var td = el("td", col
|
|
322
|
-
td.appendChild(document.createTextNode(fmt(c[col.key])));
|
|
331
|
+
var td = el("td", columnClass(col));
|
|
332
|
+
td.appendChild(col.key === "approved_by_author" ? approvalBadge(c[col.key]) : document.createTextNode(fmt(c[col.key])));
|
|
323
333
|
tr.appendChild(td);
|
|
324
334
|
});
|
|
325
335
|
tr.addEventListener("click", function () {
|
|
@@ -369,6 +379,11 @@
|
|
|
369
379
|
var countEl = document.getElementById("ce-count");
|
|
370
380
|
if (countEl) countEl.textContent = rows.length + " / " + state.clocks.length + " clocks";
|
|
371
381
|
if (sortDirBtn) sortDirBtn.textContent = state.sortDir === "desc" ? "▼" : "▲";
|
|
382
|
+
if (sortDirBtn) {
|
|
383
|
+
sortDirBtn.disabled = state.sortKey === "default";
|
|
384
|
+
sortDirBtn.title = state.sortKey === "default" ? "Default order is verified first, then name" : "Toggle sort direction";
|
|
385
|
+
sortDirBtn.setAttribute("aria-label", sortDirBtn.title);
|
|
386
|
+
}
|
|
372
387
|
if (sortSelEl) {
|
|
373
388
|
var hasKey = false;
|
|
374
389
|
SORT_OPTIONS.forEach(function (o) { if (o.key === state.sortKey) hasKey = true; });
|
|
@@ -72,6 +72,15 @@
|
|
|
72
72
|
});
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
+
function defaultOrder(clocks) {
|
|
76
|
+
return clocks.slice().sort(function (a, b) {
|
|
77
|
+
var aVerified = String(a.approved_by_author || "").toLowerCase() === "by authors" ? 0 : 1;
|
|
78
|
+
var bVerified = String(b.approved_by_author || "").toLowerCase() === "by authors" ? 0 : 1;
|
|
79
|
+
if (aVerified !== bVerified) return aVerified - bVerified;
|
|
80
|
+
return String(a.clock_name || "").toLowerCase().localeCompare(String(b.clock_name || "").toLowerCase());
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
|
|
75
84
|
function toCSV(clocks, columns) {
|
|
76
85
|
function esc(v) {
|
|
77
86
|
if (v == null) return "";
|
|
@@ -88,7 +97,7 @@
|
|
|
88
97
|
var api = {
|
|
89
98
|
FACET_FIELDS: FACET_FIELDS, NUMERIC: NUMERIC,
|
|
90
99
|
computeFacets: computeFacets, filterClocks: filterClocks,
|
|
91
|
-
sortClocks: sortClocks, toCSV: toCSV,
|
|
100
|
+
sortClocks: sortClocks, defaultOrder: defaultOrder, toCSV: toCSV,
|
|
92
101
|
};
|
|
93
102
|
if (typeof module !== "undefined" && module.exports) module.exports = api;
|
|
94
103
|
root.ClockExplorerCore = api;
|