[build-system] requires = ["hatchling>=1.21"] build-backend = "hatchling.build" [project] name = "statlens" version = "0.1.11" description = "Self-hosted DEA method selector — point a TSV at a Qwen3-32B + LoRA classifier and get the right DESeq2/limma pipeline auto-run." readme = "README.md" requires-python = ">=3.10" license = { text = "Apache-2.0" } authors = [ { name = "statLens contributors" }, ] keywords = ["bioinformatics", "differential expression", "DESeq2", "limma", "LLM", "Qwen3", "vLLM"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Scientific/Engineering :: Bio-Informatics", ] dependencies = [ # web "fastapi>=0.115", "uvicorn[standard]>=0.30", "python-multipart>=0.0.10", "httpx>=0.27", # serving — LLaMA-Factory wraps transformers + bitsandbytes for streamable bnb 4-bit "llamafactory>=0.9,<1.0", "bitsandbytes>=0.43", "torch>=2.1", # torchaudio 2.11+ requires CUDA 13; pin <2.11 to keep CUDA 12.x users happy. # (llamafactory imports torchaudio unconditionally for multimodal templates.) "torchaudio<2.11", "transformers>=4.45", "peft>=0.12", "huggingface_hub>=0.25", "pyyaml>=6.0", # data + plots used by V4 pipelines "pandas>=2.0", "numpy>=1.26", "matplotlib>=3.8", "seaborn>=0.13", "scipy>=1.13", "statsmodels>=0.14", "scikit-learn>=1.4", # DESeq2 (pure Python; no R) "pydeseq2>=0.5", # CLI niceties "rich>=13.0", "click>=8.0", ] [project.urls] Homepage = "https://huggingface.co/domizzz2025/statLens" Repository = "https://huggingface.co/domizzz2025/statLens" [project.scripts] statlens = "statlens.cli:main" [tool.hatch.build.targets.wheel] packages = ["statlens"] # data/ + pipelines/ are inside the package dir and picked up automatically; # we only need to make sure they're not excluded. include = [ "statlens/**/*.py", "statlens/**/*.html", "statlens/**/*.tsv", "statlens/**/*.sh", "statlens/**/*.md", ]