{"id":25843090,"url":"https://github.com/incatools/pandasaurus","last_synced_at":"2026-06-12T09:32:24.377Z","repository":{"id":156640218,"uuid":"617962933","full_name":"INCATools/PandaSaurus","owner":"INCATools","description":"Supporting simple queries over ontology annotations in dataframes, using UberGraph queries","archived":false,"fork":false,"pushed_at":"2025-11-28T12:36:51.000Z","size":3552,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-30T18:46:42.724Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/INCATools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-23T13:28:54.000Z","updated_at":"2025-11-28T12:35:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"75b94780-a5c6-464c-ac10-2e9c8b7d1fae","html_url":"https://github.com/INCATools/PandaSaurus","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/INCATools/PandaSaurus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2FPandaSaurus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2FPandaSaurus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2FPandaSaurus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2FPandaSaurus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/INCATools","download_url":"https://codeload.github.com/INCATools/PandaSaurus/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/INCATools%2FPandaSaurus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34238713,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-01T06:38:07.955Z","updated_at":"2026-06-12T09:32:24.372Z","avatar_url":"https://github.com/INCATools.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pandasaurus\n\n\u003cimg src=\"https://user-images.githubusercontent.com/112839/227489878-d253c381-75fd-4e92-b851-2b36df0fc5ed.png\" width=100\u003e\n\nPandasaurus supports simple queries over ontology annotations in dataframes, powered by Ubergraph SPARQL queries. It keeps dependencies light while still offering CURIE validation, enrichment utilities, and graph exports for downstream tooling.\n\n## Features\n\n- Validate and update seed CURIEs, catching obsoleted terms with replacement suggestions.\n- Enrich seed lists via simple, minimal, full, contextual, and ancestor-based strategies.\n- Build tabular outputs (`pandas.DataFrame`) and transitive-reduced graphs (`rdflib.Graph`) for visualization.\n- Batched SPARQL queries and deterministic tests with built-in mocking examples.\n\n## Installation\n\n```bash\npip install pandasaurus\n```\n\nor with Poetry:\n\n```bash\npoetry add pandasaurus\n```\n\nRequires Python 3.9–3.11.\n\n## Quick Example\n\n```python\nfrom pandasaurus.curie_validator import CurieValidator\nfrom pandasaurus.query import Query\n\nseeds = [\"CL:0000084\", \"CL:0000787\", \"CL:0000636\"]\n\nterms = CurieValidator.construct_term_list(seeds)\nCurieValidator.get_validation_report(terms)  # raises if invalid or obsoleted\n\nquery = Query(seeds, force_fail=True)\ndf = query.simple_enrichment()\nprint(df.head())\n```\n\nSee the [Quick Start guide](docs/quickstart.rst) for a step-by-step workflow.\n\n## Documentation\n\nFull documentation (quick start, recipes, developer guide, and API reference) lives under `docs/` and is published from the `gh-pages` branch:\n\n- [Hosted documentation](https://incatools.github.io/PandaSaurus/)\n- [Quick Start (source)](docs/quickstart.rst)\n- [Guides (source)](docs/guides/index.rst)\n- [API reference (source)](docs/pandasaurus/index.rst)\n\nTo build docs locally:\n\n```bash\npoetry install -E docs\npoetry run sphinx-build -b html docs docs/_build/html\n```\n\n## Contributing\n\nPull requests are welcome! See `docs/guides/contributing.rst` for details on environment setup, testing, linting, and the release workflow. Pandasaurus aims to remain a small, focused library; please open an issue before introducing large new features.\n\n## Background\n\nThe first planned use case is to provide enrichment/query tooling for AnnData Cell x Gene matrices following the [CZ single cell curation standard](https://github.com/chanzuckerberg/single-cell-curation/blob/main/schema/3.0.0/schema.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fpandasaurus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fincatools%2Fpandasaurus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fincatools%2Fpandasaurus/lists"}