Files
usher-exploring/pyproject.toml
gbanyan 8aa66987f8 feat(03-06): implement literature evidence models, PubMed fetch, and scoring
- Create LiteratureRecord pydantic model with context-specific counts
- Implement PubMed query via Biopython Entrez with rate limiting (3/sec default, 10/sec with API key)
- Define SEARCH_CONTEXTS for cilia, sensory, cytoskeleton, cell_polarity queries
- Implement evidence tier classification: direct_experimental > functional_mention > hts_hit > incidental > none
- Implement quality-weighted scoring with bias mitigation via log2(total_pubmed_count) normalization
- Add biopython>=1.84 dependency to pyproject.toml
- Support checkpoint-restart for long-running PubMed queries (estimated 3-11 hours for 20K genes)
2026-02-11 19:00:20 +08:00

62 lines
1.4 KiB
TOML

[build-system]
requires = ["setuptools>=61.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "usher-pipeline"
version = "0.1.0"
description = "Reproducible pipeline for discovering under-studied cilia/Usher candidate genes"
requires-python = ">=3.11"
authors = [
{name = "Research Team"}
]
readme = "README.md"
license = {text = "MIT"}
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Bio-Informatics",
]
dependencies = [
"mygene>=3.2.0",
"requests>=2.31.0",
"requests-cache>=1.1.0",
"tenacity>=8.2.0",
"pydantic>=2.0",
"pydantic-yaml>=1.2.0",
"duckdb>=0.9.0",
"click>=8.1.0",
"polars>=0.19.0",
"pyarrow>=14.0.0",
"pyyaml>=6.0",
"httpx>=0.28",
"structlog>=25.0",
"biopython>=1.84",
]
[project.optional-dependencies]
dev = [
"pytest>=7.4.0",
"pytest-cov>=4.1.0",
]
expression = [
"cellxgene-census>=1.19",
]
[project.scripts]
usher-pipeline = "usher_pipeline.cli.main:cli"
[tool.setuptools]
packages = ["usher_pipeline"]
package-dir = {"" = "src"}
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
python_functions = ["test_*"]
addopts = "-v --strict-markers"