diff --git a/.gitignore b/.gitignore index dcdc618..d694ae3 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ __pycache__/ # IDEs /.idea/ /.vscode/ + +/node_modules/ diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..4d2ed7a --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,21 @@ +# default to true for all rules +default: true + +# MD007/unordered-list-indent +MD007: + indent: 4 + +# MD033/no-inline-html +MD033: false + +# MD041/first-line-h1 +MD041: false + +# MD013/line-length +MD013: + line_length: 99 + +# MD024/no-duplicate-heading +MD024: + # Allow when nested under different parents e.g. CHANGELOG.md + siblings_only: true diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c8d42a4..d6f7575 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -10,14 +10,36 @@ repos: rev: v4.0.0-alpha.8 hooks: - id: prettier + types: [yaml] + + - repo: https://github.com/executablebooks/mdformat + rev: 0.7.17 + hooks: + - id: mdformat + additional_dependencies: + - mdformat-mkdocs + - mdformat-admon + exclude: | + (?x)^( + \.github/.*\.md + )$ + + - repo: https://github.com/igorshubovych/markdownlint-cli + rev: v0.39.0 + hooks: + - id: markdownlint-fix + exclude: | + (?x)^( + \.github/.*\.md + ) + - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.3.5 hooks: - id: ruff - types_or: [python, pyi, jupyter] args: [--fix, --exit-non-zero-on-fix] - id: ruff-format - types_or: [python, pyi, jupyter] + - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.6.0 hooks: @@ -28,9 +50,9 @@ repos: args: [--fix=lf] - id: trailing-whitespace - id: check-case-conflict - # Check that there are no merge conflicts (could be generated by template sync) - id: check-merge-conflict args: [--assume-in-merge] + - repo: local hooks: - id: forbid-to-commit diff --git a/README.md b/README.md index 5659a03..d06c96f 100644 --- a/README.md +++ b/README.md @@ -1,76 +1,55 @@ -scvi-tools - -[![Discourse](https://img.shields.io/discourse/posts?color=yellow&logo=discourse&server=https%3A%2F%2Fdiscourse.scverse.org)](https://discourse.scverse.org/) -[![Chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://scverse.zulipchat.com/) -[![Powered by NumFOCUS][badge-numfocus]][link-numfocus] -[![Linux (CUDA, base)](https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_base.yaml/badge.svg)](https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_base.yaml) -[![Linux (CUDA, latest scheduled)](https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_latest_scheduled.yaml/badge.svg)](https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_latest_scheduled.yaml) - -[scvi-tools](https://scvi-tools.org/) (single-cell variational inference -tools) is a package for probabilistic modeling and analysis of single-cell omics -data, built on top of [PyTorch](https://pytorch.org) and -[AnnData](https://anndata.readthedocs.io/en/latest/). - -[//]: # "numfocus-fiscal-sponsor-attribution" - -scvi-tools is part of the scverse project ([website](https://scverse.org), [governance](https://scverse.org/about/roles)) and is fiscally sponsored by [NumFOCUS](https://numfocus.org/). -Please consider making a tax-deductible [donation](https://numfocus.org/donate-to-scverse) to help the project pay for developer time, professional services, travel, workshops, and a variety of other needs. - - + scvi-tools -[badge-numfocus]: https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A -[link-numfocus]: http://numfocus.org +[![linux (cuda, base)][linux-cuda-base-badge]][linux-cuda-base-link] +[![linux (cuda, latest)][linux-cuda-latest-badge]][linux-cuda-latest-link] + +[scvi-tools] (single-cell variational inference tools) is a package for probabilistic modeling and +analysis of single-cell omics data, built on top of [PyTorch] and [AnnData]. # Docker images -This repository contains the source Dockerfiles for the scvi-tools [Docker images](https://hub.docker.com/repository/docker/scverse/scvi-tools/general). +This repository contains the source files for our [Docker images]. ## Tags `py{PYTHON_VERSION}-cu{CUDA_VERSION}-base`: CUDA-based PyTorch and JAX installations -- Updated weekly Sunday at 05:00 PST -- We currently build images for `PYTHON_VERSION=[3.9, 3.10, 3.11]` and `CUDA_VERSION=[11, 12]` - -`py{PYTHON_VERSION}-cu{CUDA_VERSION}-runtime-{latest/stable/semver}`: `base` image with runtime dependencies - -- `latest`: Updated daily at 12:00 PST -- `stable`: Alias for the most recent `semver` -- `semver`: Updated with each new stable release on the [main repository](https://github.com/scverse/scvi-tools) - -`py{PYTHON_VERSION}-cu{CUDA_VERSION}-dev-{latest/stable/semver}`: `base` image with development dependencies - -- `latest`: Updated daily at 12:00 PST -- `stable`: Alias for the most recent `semver` -- `semver`: Updated with each new stable release on the [main repository](https://github.com/scverse/scvi-tools) - -`py{PYTHON_VERSION}-cu{CUDA_VERSION}-tutorials-{latest/stable/semver}`: `base` image with tutorial dependencies +- Updated weekly Sunday at 05:00 PST +- We currently build images for `PYTHON_VERSION=[3.9, 3.10, 3.11]` and `CUDA_VERSION=[11, 12]` -- `latest`: Updated daily at 12:00 PST -- `stable`: Alias for the most recent `semver` -- `semver`: Updated with each new stable release on the [main repository](https://github.com/scverse/scvi-tools) +`py{PYTHON_VERSION}-cu{CUDA_VERSION}-runtime-{latest/stable/semver}`: `base` image with runtime +dependencies -# Reference +- `latest`: Updated daily at 12:00 PST +- `stable`: Alias for the most recent `semver` +- `semver`: Updated with each new stable release on the [main repository] -If you use `scvi-tools` in your work, please cite +`py{PYTHON_VERSION}-cu{CUDA_VERSION}-dev-{latest/stable/semver}`: `base` image with development +dependencies -> **A Python library for probabilistic analysis of single-cell omics data** -> -> Adam Gayoso, Romain Lopez, Galen Xing, Pierre Boyeau, Valeh Valiollah Pour Amiri, Justin Hong, Katherine Wu, Michael Jayasuriya, Edouard Mehlman, Maxime Langevin, Yining Liu, Jules Samaran, Gabriel Misrachi, Achille Nazaret, Oscar Clivio, Chenling Xu, Tal Ashuach, Mariano Gabitto, Mohammad Lotfollahi, Valentine Svensson, Eduardo da Veiga Beltrame, Vitalii Kleshchevnikov, Carlos Talavera-López, Lior Pachter, Fabian J. Theis, Aaron Streets, Michael I. Jordan, Jeffrey Regier & Nir Yosef -> -> _Nature Biotechnology_ 2022 Feb 07. doi: [10.1038/s41587-021-01206-w](https://doi.org/10.1038/s41587-021-01206-w). +- `latest`: Updated daily at 12:00 PST +- `stable`: Alias for the most recent `semver` +- `semver`: Updated with each new stable release on the [main repository] -along with the publicaton describing the model used. +`py{PYTHON_VERSION}-cu{CUDA_VERSION}-tutorials-{latest/stable/semver}`: `base` image with tutorial +dependencies -You can cite the scverse publication as follows: +- `latest`: Updated daily at 12:00 PST +- `stable`: Alias for the most recent `semver` +- `semver`: Updated with each new stable release on the [main repository] -> **The scverse project provides a computational ecosystem for single-cell omics data analysis** -> -> Isaac Virshup, Danila Bredikhin, Lukas Heumos, Giovanni Palla, Gregor Sturm, Adam Gayoso, Ilia Kats, Mikaela Koutrouli, Scverse Community, Bonnie Berger, Dana Pe’er, Aviv Regev, Sarah A. Teichmann, Francesca Finotello, F. Alexander Wolf, Nir Yosef, Oliver Stegle & Fabian J. Theis -> -> _Nature Biotechnology_ 2023 Apr 10. doi: [10.1038/s41587-023-01733-8](https://doi.org/10.1038/s41587-023-01733-8). +[anndata]: https://anndata.readthedocs.io/en/latest/ +[docker images]: https://hub.docker.com/repository/docker/scverse/scvi-tools/general +[linux-cuda-base-badge]: https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_base.yaml/badge.svg +[linux-cuda-base-link]: https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_base.yaml +[linux-cuda-latest-badge]: https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_latest_scheduled.yaml/badge.svg +[linux-cuda-latest-link]: https://github.com/YosefLab/scvi-tools-docker/actions/workflows/linux_cuda_latest_scheduled.yaml +[main repository]: https://github.com/scverse/scvi-tools +[pytorch]: https://pytorch.org +[scvi-tools]: https://scvi-tools.org/