# New in 0.14.0 (2021-10-07)

In this release, we have completely revamped the scvi-tools documentation website by creating a new set of user guides that provide:

1. The math behind each method (in a succinct, online methods-like way)
2. The relationship between the math and the functions associated with each model
3. The relationship between math variables and code variables

Our previous User Guide guide has been renamed to Tutorials and contains all of our existing tutorials (including tutorials for developers).

Another noteworthy addition in this release is the implementation of the (amortized) Latent Dirichlet Allocation (aka LDA) model applied to single-cell gene expression data. We have also prepared a tutorial that demonstrates how to use this model, using a PBMC 10K dataset from 10x Genomics as an example application.

Lastly, in this release we have made a change to reduce user and developer confusion by making the previously global `setup_anndata` method a static class-specific method instead. This provides more clarity on which parameters are applicable for this call, for each model class. Below is a before/after for the DESTVI and TOTALVI model classes:

:::{figure} figures/setup_anndata_before_after.svg
:align: center
:alt: setup_anndata before and after
:class: img-fluid

`setup_anndata` before and after
:::

## Changes

-   Added fixes to support PyTorch Lightning 1.4 ([#1103])
-   Simplified data handling in R tutorials with sceasy and addressed bugs in package installation ([#1122]).
-   Moved library size distribution computation to model init ([#1123])
-   Updated Contribution docs to describe how we backport patches ([#1129])
-   Implemented Latent Dirichlet Allocation as a PyroModule ([#1132])
-   Made `setup_anndata` a static method on model classes rather than one global function ([#1150])
-   Used Pytorch Lightning's `seed_everything` method to set seed ([#1151])
-   Fixed a bug in {class}`~scvi.model.base.PyroSampleMixin` for posterior sampling ([#1158])
-   Added CITE-Seq datasets ([#1182])
-   Added user guides to our documentation ([#1127], [#1157], [#1180], [#1193], [#1183], [#1204])
-   Early stopping now prints the reason for stopping when applicable ([#1208])

## Breaking changes

-   `setup_anndata` is now an abstract method on model classes. Any model inheriting from {class}`~scvi.model.base.BaseModelClass` will need to implement this method ([#1150])

## Contributors

-   [@adamgayoso]
-   [@PierreBoyeau]
-   [@talashuach]
-   [@jjhong922]
-   [@watiss]
-   [@mjayasur]
-   [@vitkl]
-   [@galenxing]

[#1103]: https://github.com/YosefLab/scvi-tools/pull/1103
[#1122]: https://github.com/YosefLab/scvi-tools/pull/1122
[#1123]: https://github.com/YosefLab/scvi-tools/pull/1123
[#1127]: https://github.com/YosefLab/scvi-tools/pull/1127
[#1129]: https://github.com/YosefLab/scvi-tools/pull/1129
[#1132]: https://github.com/YosefLab/scvi-tools/pull/1132
[#1150]: https://github.com/YosefLab/scvi-tools/pull/1150
[#1151]: https://github.com/YosefLab/scvi-tools/pull/1151
[#1157]: https://github.com/YosefLab/scvi-tools/pull/1157
[#1158]: https://github.com/YosefLab/scvi-tools/pull/1158
[#1180]: https://github.com/YosefLab/scvi-tools/pull/1180
[#1182]: https://github.com/YosefLab/scvi-tools/pull/1182
[#1183]: https://github.com/YosefLab/scvi-tools/pull/1183
[#1193]: https://github.com/YosefLab/scvi-tools/pull/1193
[#1204]: https://github.com/YosefLab/scvi-tools/pull/1204
[#1208]: https://github.com/YosefLab/scvi-tools/pull/1208
[@adamgayoso]: https://github.com/adamgayoso
[@galenxing]: https://github.com/galenxing
[@jjhong922]: https://github.com/jjhong922
[@mjayasur]: https://github.com/mjayasur
[@pierreboyeau]: https://github.com/PierreBoyeau
[@talashuach]: https://github.com/talashuach
[@vitkl]: https://github.com/vitkl
[@watiss]: https://github.com/watiss
