TACCO is a python framework for working with categorical and compositional annotations for high-dimensional observations, in particular for transferring annotations from single cell to spatial transcriptomics data. TACCO comes with an extensive ever expanding documentation and a set of example notebooks. If TACCO is useful for your research, you can cite Nat Biotechnol (2023).
The simplest way to install TACCO is to create a clean environment with conda using the environment.yml file from the TACCO repository:
conda env create -f "https://raw.githubusercontent.com/simonwm/tacco/master/environment.yml"
(For older versions of conda one needs to download the environment.yml and use the local file for installation.)
To install TACCO in an already existing environment, use conda to install from the conda-forge channel:
conda install -c conda-forge tacco
It is also possible to install from pypi via pip:
pip install tacco
This is however not recommended. Unlike conda, pip cannot treat python itself as a package, so if you start with the wrong python version, you will run into errors with dependencies (e.g. at the time of writing, mkl-service is not available for python 3.10 and numba not for 3.11).
To access the most recent pre-release versions it is also possible to pip-install directly from github:
pip install tacco@git+https://github.com/simonwm/tacco.git
Obviously, this is not recomended for production environments.
TACCO features a fast and straightforward API for the compositional annotation of one dataset, given as an anndata object adata, with a categorically annotated second dataset, given as an anndata object reference. The annotation is wrapped in a single function call
import tacco as tc
tc.tl.annotate(adata, reference, annotation_key='my_categorical_annotation', result_key='my_compositional_annotation')
where 'my_categorical_annotation' is the name of the categorical .obs annotation in reference and 'my_compositional_annotation' is the name of the new compositional .obsm annotation to be created in adata. There are many options for customizing this function to call e.g. external annotation tools, which are described in the documentation of the annotate function.
As the TACCO framework contains much more than a compositional annotation method (single-molecule annotation, object-splitting, spatial co-occurrence analysis, enrichments, visualization, ...), its documentation does not fit into a README.