← All .science files
pmid:38603598
pyaging: a Python-based compendium of GPU-optimized aging clocks.
Lucas Paulo de Lima Camillo
Bioinformatics (Oxford, England) · 2024 doi:10.1093/bioinformatics/btae200
Paper
complete
Experiment
complete
Data
partial
Analysis
partial
Execution
absent
Execution evidence has not yet been added to this .science file. Explore its methods, data and open questions to plan the next step.
Record details sci_version · id · kind · revision · content_hash · schema · created_at · updated_at · generator
paper object · 10 fields
authors array · 1 item
claims array · 3 items
[0] object · 6 fields
[1] object · 6 fields
[2] object · 6 fields
evidence array · 3 items
[0] object · 3 fields
[1] object · 3 fields
gaps array · 0 items
experiment object · 8 fields
steps array · 3 items
[0] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
[1] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
[2] object · 13 fields
parameters object · 0 fields
inputs array · 1 item
outputs array · 1 item
instruments array · 0 items
reagents array · 0 items
materials array · 0 items
instruments array · 0 items
reagents array · 0 items
conditions object · 0 fields
gaps array · 0 items
data object · 3 fields
assets array · 2 items
[0] object · 15 fields
structure object · 4 fields
[1] object · 15 fields
structure object · 15 fields
sample_accessions array · 137 items
gaps array · 2 items
analysis object · 4 fields
methods array · 3 items
[0] object · 10 fields
dsl_operations array · 1 item
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 1 item
[1] object · 10 fields
dsl_operations array · 1 item
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 1 item
[2] object · 10 fields
dsl_operations array · 1 item
missing_operations array · 0 items
parameters object · 0 fields
data_shapes array · 1 item
targets array · 0 items
gaps array · 1 item
capability object · 3 fields
requirements array · 1 item
[0] object · 6 fields
assay_families array · 9 items
gaps array · 0 items
readiness object · 8 fields
axes object · 3 fields
method object · 5 fields
required_operations array · 1 item
missing_operations array · 0 items
capability object · 4 fields
data object · 6 fields
accessions array · 1 item
resolved_accessions array · 1 item
statements array · 1 item
can_run object · 3 fields
dsl_operations array · 1 item
assets array · 2 items
steps array · 1 item
must_build object · 5 fields
dsl_operations array · 0 items
converters array · 0 items
readers array · 0 items
capabilities array · 0 items
data_gaps array · 1 item
gaps array · 0 items
review object · 5 fields
machine_critique object · 5 fields
reader object · 5 fields
evidence_check object · 2 fields
usage object · 3 fields
stages array · 1 item
[0] object · 4 fields
gaps array · 3 items
provenance object · 7 fields
entities array · 3 items
activities array · 3 items
[0] object · 4 fields
used array · 3 items
[0] object · 3 fields
[1] object · 3 fields
[2] object · 3 fields
[1] object · 4 fields
agents array · 2 items
lineage object · 4 fields
gaps array · 7 items
assays array · 2 items
[0] object · 11 fields
required_operations array · 0 items
source_hashes object · 1 field
evidence array · 2 items
[1] object · 11 fields
required_operations array · 1 item
source_hashes object · 1 field
evidence array · 1 item
Complete file
{"sci_version": "1.2", "schema": "https://corpus.bntrg.co.uk/sci/1.0/sci.schema.json", "id": "pmid:38603598", "kind": "science-record", "revision": 4, "content_hash": "sha256:51d002ae8ff990ec9a21e936c6a84489013304196f10820f0e90ee38702b5d12", "created_at": "2026-11-01T19:20:34Z", "updated_at": "2026-11-01T22:54:06Z", "generator": {"name": "corpus-assay-engine", "run_id": "reading-sci-2026-11-01"}, "paper": {"state": "complete", "title": "pyaging: a Python-based compendium of GPU-optimized aging clocks.", "doi": "10.1093/bioinformatics/btae200", "pmid": "38603598", "authors": ["Lucas Paulo de Lima Camillo"], "journal": "Bioinformatics (Oxford, England)", "year": 2024, "abstract": "MOTIVATION: Aging is intricately linked to diseases and mortality. It is reflected in molecular changes across various tissues which can be leveraged for the development of biomarkers of aging using machine learning models, known as aging clocks. Despite advancements in the field, a significant challenge remains: the lack of robust, Python-based software tools for integrating and comparing these diverse models. This gap highlights the need for comprehensive solutions that can handle the complexity and variety of data in aging research.\nRESULTS: To address this gap, I introduce pyaging, a comprehensive open-source Python package designed to facilitate aging research. pyaging harmonizes dozens of aging clocks, covering a range of molecular data types such as DNA methylation, transcriptomics, histone mark ChIP-Seq, and ATAC-Seq. The package is not limited to traditional model types; it features a diverse array, from linear and principal component models to neural networks and automatic relevance determination models. Thanks to a PyTorch-based backend that enables GPU acceleration, pyaging is capable of rapid inference, even when dealing with large datasets and complex models. In addition, the package's support for multi-species analysis extends its utility across various organisms, including humans, various mammals, and Caenorhabditis elegans.\nAVAILABILITY AND IMPLEMENTATION: pyaging is accessible on GitHub, at https://github.com/rsinghlab/pyaging, and the distribution is available on PyPi, at https://pypi.org/project/pyaging/. The software is also archived on Zenodo, at https://zenodo.org/doi/10.5281/zenodo.10335011.", "claims": [{"id": "claim-method", "statement": "Through hierarchical clustering and Spearman correlation, expected patterns emerge (Fig. 1a).", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:38603598", "locator": "sections[3] \"3 Results\" paragraph 3", "quote": "Through hierarchical clustering and Spearman correlation, expected patterns emerge (Fig. 1a)."}], "state": "complete"}, {"id": "claim-data-access", "statement": "Supplementary data are available at Bioinformatics online.", "kind": "methodological", "target": null, "evidence": [{"asset": "source:pmid:38603598", "locator": "sections[8] \"Supplementary data\" paragraph 2", "quote": "Supplementary data are available at Bioinformatics online."}], "state": "complete"}, {"id": "claim-target-result", "statement": "The study showed that pyaging enables rapid comparison of diverse methylation-based aging clocks and biomarkers using hierarchical clustering, correlation analysis, dimensionality reduction, and GPU-accelerated prediction.", "kind": "qualitative", "target": null, "evidence": [{"asset": "source:pmid:38603598", "locator": "sections[3] \"3 Results\" paragraph 3", "quote": "Through hierarchical clustering and Spearman correlation, expected patterns emerge (Fig. 1a)."}, {"asset": "source:pmid:38603598", "locator": "sections[3] \"3 Results\" paragraph 3", "quote": "Overall, pyaging makes it straightforward to contrast the performance of distinct aging clocks."}, {"asset": "source:pmid:38603598", "locator": "sections[3] \"3 Results\" paragraph 7", "quote": "Overall, this comparison highlights the power of GPU-acceleration enabled by pyaging."}], "state": "complete"}], "gaps": []}, "experiment": {"state": "complete", "objective": "The study showed that pyaging enables rapid comparison of diverse methylation-based aging clocks and biomarkers using hierarchical clustering, correlation analysis, dimensionality reduction, and GPU-accelerated prediction.", "steps": [{"id": "read_published_estimate", "order": 1, "name": "Read the published estimate from the source", "kind": "other", "state": "complete", "blocked_on": null, "description": "The claim, method and evidence span published with the source article.", "duration_hours": null, "parameters": {}, "inputs": ["source:pmid:38603598"], "outputs": ["the published estimate and its evidence"], "instruments": [], "reagents": []}, {"id": "obtain_source_data", "order": 2, "name": "Obtain the source data from the named repository", "kind": "data-preparation", "state": "complete", "blocked_on": null, "description": "The GEO series accession resolves and its sample accessions are listed. This lane did not download the dataset or read its licence.", "duration_hours": null, "parameters": {}, "inputs": ["data:geo:GSE54848"], "outputs": ["the source data with its repository provenance"], "instruments": [], "reagents": []}, {"id": "run_analysis", "order": 3, "name": "Run the published analysis", "kind": "analysis", "state": "complete", "blocked_on": null, "description": "Apply the paper's statistical method to the resolved series and compare the result with the published target.", "duration_hours": null, "parameters": {}, "inputs": ["data:geo:GSE54848"], "outputs": ["the replicated result and its comparison"], "instruments": [], "reagents": []}], "materials": [], "instruments": [], "reagents": [], "conditions": {}, "gaps": []}, "data": {"state": "partial", "assets": [{"id": "source:pmid:38603598", "role": "manuscript", "format": "xml", "media_type": "application/xml", "uri": "https://doi.org/10.1093/bioinformatics/btae200", "sha256": "sha256:dbac40246d58d43ac1dc234b2c1200328ac4f7f0d90b9c3b9f2ce70c037a5728", "bytes": 24967, "access": "open", "state": "resolved", "reader": null, "reader_status": "reader_required", "identifier": "10.1093/bioinformatics/btae200", "version": null, "note": "Full article fetched from PMC; the checksum covers the rendered section body, not the original XML bytes.", "structure": {"pmcid": "PMC11058068", "source": "europe_pmc_fulltext", "coverage": "whole_body", "text_hash_scope": "rendered_section_body"}}, {"id": "data:geo:GSE54848", "role": "raw", "format": "geo-series", "media_type": "application/vnd.ncbi.geo-series+json", "uri": "https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE54848", "sha256": null, "bytes": null, "access": "open", "state": "resolved", "reader": null, "reader_status": "reader_required", "identifier": "GSE54848", "version": null, "note": "Supplementary data are available at Bioinformatics online.", "structure": {"repository": "GEO", "access_route": "GEO accession URL", "access_statement_verbatim": "Supplementary data are available at Bioinformatics online.", "access_statement_kind": "data_availability_statement", "sample_accessions": ["GSM1325080", "GSM1325081", "GSM1325082", "GSM1325083", "GSM1325084", "GSM1325085", "GSM1325086", "GSM1325087", "GSM1325088", "GSM1325089", "GSM1325090", "GSM1325091", "GSM1325092", "GSM1325093", "GSM1325094", "GSM1325095", "GSM1325096", "GSM1325097", "GSM1325098", "GSM1325099", "GSM1325100", "GSM1325101", "GSM1325102", "GSM1325103", "GSM1325104", "GSM1325105", "GSM1325106", "GSM1325107", "GSM1325108", "GSM1325109", "GSM1325110", "GSM1325111", "GSM1325112", "GSM1325113", "GSM1325114", "GSM1325115", "GSM1325116", "GSM1325117", "GSM1325118", "GSM1325119", "GSM1325120", "GSM1325121", "GSM1325122", "GSM1325123", "GSM1325124", "GSM1325125", "GSM1325126", "GSM1325127", "GSM1325128", "GSM1325129", "GSM1325130", "GSM1325131", "GSM1325132", "GSM1325133", "GSM1325134", "GSM1325135", "GSM1325136", "GSM1325137", "GSM1325138", "GSM1325139", "GSM1325140", "GSM1325141", "GSM1325142", "GSM1325143", "GSM1325144", "GSM1325145", "GSM1325146", "GSM1325147", "GSM1325148", "GSM1325149", "GSM1325150", "GSM1325151", "GSM1325152", "GSM1325153", "GSM1325154", "GSM1325155", "GSM1325156", "GSM1325157", "GSM1325158", "GSM1325159", "GSM1325160", "GSM1325161", "GSM1325162", "GSM1325163", "GSM1325164", "GSM1325165", "GSM1325166", "GSM1325167", "GSM1325168", "GSM1325169", "GSM1325170", "GSM1325171", "GSM1325172", "GSM1325173", "GSM1325174", "GSM1325175", "GSM1325176", "GSM1325177", "GSM1325178", "GSM1325179", "GSM1325180", "GSM1325181", "GSM1325182", "GSM1325183", "GSM1325184", "GSM1325185", "GSM1325186", "GSM1345997", "GSM1345998", "GSM1345999", "GSM1346000", "GSM1346001", "GSM1346002", "GSM1346003", "GSM1346004", "GSM1346005", "GSM1346006", "GSM1346007", "GSM1346008", "GSM1346009", "GSM1346010", "GSM1346011", "GSM1346012", "GSM1346013", "GSM1346014", "GSM1346015", "GSM1346016", "GSM1346017", "GSM1346018", "GSM1346019", "GSM1346020", "GSM1346021", "GSM1346022", "GSM1346023", "GSM1346024", "GSM1346025", "GSM1346026"], "sample_count": 137, "group_sizes": null, "group_sizes_basis": null, "platform": "14550;13534", "taxon": "Homo sapiens", "title": "Critical role of transient activation of human endogenous retroviruses during reprogramming toward pluripotency", "resolution_checked_at": "2026-11-01T20:16:08Z", "resolution_check": "identifier_resolution_only_no_download_no_licence_read", "downloaded": false, "licence_read": false}}], "gaps": ["asset:data:geo:GSE54848 not downloaded", "asset:data:geo:GSE54848 licence not read"]}, "analysis": {"state": "partial", "methods": [{"id": "method-1", "family": "correlation_analysis", "specific": "spearman", "label": "Correlation analysis", "dsl_operations": ["spearman_rho"], "missing_operations": [], "expressible": true, "parameters": {}, "data_shapes": ["paired_numeric_columns"], "evidence": {"score": 1.0, "band": "verbatim", "quote": "Through hierarchical clustering and Spearman correlation, expected patterns emerge (Fig. 1a)."}}, {"id": "method-2", "family": "principal_component_analysis", "specific": "pca", "label": "Principal component analysis", "dsl_operations": ["pca_fit"], "missing_operations": [], "expressible": true, "parameters": {}, "data_shapes": ["wide_numeric_matrix"], "evidence": {"score": 0.8, "band": "high", "quote": "principal component analysis"}}, {"id": "method-3", "family": "clustering", "specific": "hierarchical", "label": "Clustering", "dsl_operations": ["hierarchical_cluster"], "missing_operations": [], "expressible": true, "parameters": {}, "data_shapes": ["feature_matrix"], "evidence": {"score": 0.8, "band": "high", "quote": "hierarchical clustering"}}], "targets": [], "gaps": ["method.reader_differs_from_extractor"]}, "capability": {"state": "complete", "requirements": [{"capability_id": "capability:computational_analysis", "label": "Computational analysis platform", "assay_families": ["meta_analysis", "machine_learning", "survival_analysis", "statistical_regression", "pca", "molecular_docking", "network_analysis", "differential_expression", "gwas"], "availability_state": "owned", "tier_unlocked": "R1", "candidate": "Automated Assays Laravel application and simulated adapters"}], "gaps": []}, "readiness": {"state": "complete", "tier": "R1", "blocking_axis": "none", "blocked_on": "nothing:replicable_now", "axes": {"method": {"tier": "R1", "expressible": true, "required_operations": ["spearman_rho"], "missing_operations": [], "basis": "The paper names the method it used and the corpus's method extractor maps it onto the DSL catalogue: spearman."}, "capability": {"tier": "R1", "capability_id": "capability:computational_analysis", "availability_state": "owned", "basis": "The computational analysis is owned. The physical bench the paper used is not, so a physical validation cannot be run here."}, "data": {"tier": "R1", "reachable": true, "accessions": ["GSE54848"], "resolved_accessions": ["GSE54848"], "statements": ["Supplementary data are available at Bioinformatics online."], "basis": "The paper names GSE54848 in reprogramming dataset and the accession resolves in the repository. No dataset was downloaded and no licence was read."}}, "can_run": {"dsl_operations": ["spearman_rho"], "assets": ["source:pmid:38603598", "data:geo:GSE54848"], "steps": ["run_analysis"]}, "must_build": {"dsl_operations": [], "converters": [], "readers": [], "capabilities": [], "data_gaps": ["data:geo:GSE54848"]}, "gaps": []}, "review": {"state": "partial", "machine_critique": {"kind": "extraction_review", "reader": {"model": "MiniMax-M3.1-Flash", "provider": "minimax", "provider_family": "minimax", "read_at": "2026-11-01T19:15:17Z", "independence": "single_reader"}, "evidence_check": {"method": "verbatim", "availability": "verbatim"}, "calls": 5, "usage": {"prompt_tokens": 8088, "completion_tokens": 1496, "cached_tokens": 256}}, "human_critique": null, "stages": [{"id": "extraction", "state": "complete", "reader": "MiniMax-M3.1-Flash", "provider": "minimax"}], "gaps": ["review.independent_reader", "review.machine_critique", "review.human_critique"]}, "execution": {"state": "absent", "status": "not_run", "mode": null, "runs": [], "gaps": ["execution.not_run"]}, "provenance": {"entities": [{"id": "pmid:38603598", "type": "paper", "label": "pmid:38603598"}, {"id": "source:pmid:38603598", "type": "manuscript", "label": "PMID 38603598 full text"}, {"id": "data:geo:GSE54848", "type": "dataset", "label": "GEO GSE54848"}], "activities": [{"id": "activity-reading-sci-2026-11-01", "type": "classification", "used": [{"id": "pmid:38603598", "type": "paper", "label": "pmid:38603598"}, {"id": "source:pmid:38603598", "type": "manuscript", "label": "PMID 38603598 full text"}, {"id": "data:geo:GSE54848", "type": "dataset", "label": "GEO GSE54848"}], "agent": "agent:corpus-assay-engine"}, {"id": "activity-read-38603598", "type": "extraction", "used": ["source:pmid:38603598"], "agent": "agent:minimax-reader"}, {"id": "activity-resolve-GSE54848", "type": "accession_resolution", "used": ["data:geo:GSE54848"], "agent": "agent:corpus-assay-engine"}], "agents": [{"id": "agent:corpus-assay-engine", "type": "software", "label": "Corpus assay engine"}, {"id": "agent:minimax-reader", "type": "software", "label": "MiniMax literature reader"}], "source_run_id": "reading-sci-2026-11-01", "dsl_catalogue_fingerprint": "343fb30756ba6ec3", "capability_table_fingerprint": "2cb3e42f047d2ecf", "snapshot_id": "ba34b49490d9bfaf"}, "lineage": {"parent_id": "pmid:38603598", "parent_hash": "sha256:266cb3b5db24118c20005eeeeb883cf43853742cbe58fd44b8d7239fd8857656", "fork_of": null, "generation": 3}, "gaps": ["asset:data:geo:GSE54848 licence not read", "asset:data:geo:GSE54848 not downloaded", "execution.not_run", "method.reader_differs_from_extractor", "review.human_critique", "review.independent_reader", "review.machine_critique"], "assays": [{"role": "data_generation", "definition_id": "chip_seq", "definition_version": "99e1195c7d6f", "definition_digest": null, "required_operations": [], "support_state": "partial", "source_hashes": {"assay_lexicon": "99e1195c7d6f"}, "confidence": 0.99, "evidence": ["A methylation, transcriptomics, histone mark ChIP-Seq, and ATAC-Seq. The package is not limited to", "transcriptomics, histone mark ChIP-Seq, and ATAC-Seq. The package is not limited to traditional m"], "order_basis": "paper_text_order:835", "id": "assay:1"}, {"role": "analysis", "definition_id": "correlation_analysis", "definition_version": "f2132e96ae6c7a4e", "definition_digest": null, "required_operations": ["spearman_rho"], "support_state": "supported", "source_hashes": {"dsl_catalogue": "f2132e96ae6c7a4e"}, "confidence": 1.0, "evidence": ["Through hierarchical clustering and Spearman correlation, expected patterns emerge (Fig. 1a)."], "order_basis": "consumes_earlier_output", "id": "assay:2"}]}