anndata: dados anotados em R

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

[ad_1]

[This article was first published on R | Robrecht Cannoodt, and kindly contributed to R-bloggers]. (Você pode relatar problemas sobre o conteúdo desta página aqui)


Quer compartilhar seu conteúdo em R-bloggers? clique aqui se você tiver um blog, ou aqui se não tiver.

anndata é um pacote Python comumente usado para controlar os dados e anotações aprendidas e pode ser usado para ler e gravar no formato de arquivo h5ad. É também o principal formato de dados usado no pacote scanpy python (Wolf, Angerer e Theis 2018).

No entanto, usar scanpy / anndata em R pode ser um grande incômodo. Ao tentar ler um arquivo h5ad, os usuários R podem abordar esse problema de uma das duas maneiras. A) Você pode ler o arquivo manualmente (já que é um arquivo H5), mas isso envolve muito trabalho manual e muito entendimento sobre como os formatos de arquivo h5ad e H5 funcionam (também, espere grandes dores de cabeça com bugs hdf5r crípticos) . Ou B) interagir com scanpy e anndata por meio de reticulate, mas encontrar problemas ao converter alguns dos objetos Python em R.

Publicamos recentemente anndata no CRAN, que é um wrapper R para o pacote Python – com alguma sintaxe polvilhada no topo para fazer os usuários R se sentirem mais em casa.

O R anndata ainda está em desenvolvimento ativo em github.com/rcannood/anndata. Se você encontrar qualquer problema, fique à vontade para postar um problema no GitHub!

Instalação

Instalando anndata não é particularmente difícil. Você precisa de R e Python para ser instalado. Se você não tem uma instalação funcional do Python, pode deixar reticular a instalação do Miniconda.

# install the R anndata package
install.packages("anndata")
# skip this if you wish to use the local python installation
reticulate::install_miniconda()
# skip this if anndata is already installed
anndata::install_anndata()

Começando

A API de anndata é muito semelhante à sua contraparte Python. Verificação de saída ?anndata para obter uma lista completa das funções fornecidas por este pacote.

Leia Também  Usando {drake} para Machine Learning

AnnData armazena uma matriz de dados X junto com anotações de observações obs (obsm, obsp), variáveis var (varm, varp), e anotações não estruturadas uns.

Aqui está um exemplo de como criar um objeto AnnData com 2 observações e 3 variáveis.

library(anndata)
ad 

You can read the information back out using the $ notation.

ad$X
## var1 var2 var3
## s1 1 3 5
## s2 2 4 6
ad$obs
## group
## s1 a
## s2 b
ad$obsm[["ones"]]
## [,1] [,2] [,3] [,4] [,5]
## [1,] 1 1 1 1 1
## [2,] 1 1 1 1 1
ad$layers[["spliced"]]
## var1 var2 var3
## s1 4 6 8
## s2 5 7 9
ad$uns[["b"]]
## i j value
## 1 1 4 0.1304560
## 2 2 5 0.5043473
## 3 3 6 0.3199207

Usando o scanpy

Um bom efeito colateral de carregar este pacote é que agora é muito fácil interagir com o scanpy por meio desses objetos AnnData.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br
library(reticulate)
ad$X
## var1 var2 var3
## s1 1 3 5
## s2 2 4 6
sc 

Ler / escrever objetos AnnData

Leia no formato h5ad:

read_h5ad("pbmc_1k_protein_v3_processed.h5ad")
## AnnData object with n_obs × n_vars = 713 × 33538
## var: 'gene_ids', 'feature_types', 'genome', 'highly_variable', 'means', 'dispersions', 'dispersions_norm'
## uns: 'hvgParameters', 'normalizationParameters', 'pca', 'pcaParameters'
## obsm: 'X_pca'
## varm: 'PCs'

Criar uma vista

Você pode usar qualquer um dos métodos regulares de indexação R para subconjunto do AnnData objeto. Isso resultará em uma 'Visualização' dos dados subjacentes sem a necessidade de armazenar os mesmos dados duas vezes.

view 

AnnData como uma matriz

o X atributo pode ser usado como uma matriz R:

ad$X[,c("var1", "var2")]
## var1 var2
## s1 1.166667 3.5
## s2 1.750000 3.5
ad$X[-1, , drop = FALSE]
## var1 var2 var3
## s2 1.75 3.5 5.25
ad$X[, 2] 

You can access a different layer matrix as follows:

ad$layers["unspliced"]
## var1 var2 var3
## s1 8 10 12
## s2 9 11 13
ad$layers["unspliced"][,c("var2", "var3")]
## var2 var3
## s1 10 12
## s2 11 13

Nota sobre o estado

Se você atribuir um objeto AnnData a outra variável e modificar um deles, ambos serão modificados:

ad2 

This is standard Python behaviour but not R. In order to have two separate copies of an AnnData object, use the $copy() function:

ad3 

Trabalho futuro

Em alguns casos, este pacote ainda pode funcionar mais como um pacote Python do que como um pacote R. Algumas funções auxiliares e classes auxiliares precisam ser definidas para encapsular totalmente
AnnData() objetos. Exemplos são:

ad$chunked_X(1)
## 

A seguinte funcionalidade não foi testada:

ad$rename_categories(...)
ad$strings_to_categoricals(...)

Atualmente não implementados são os read_zarr() e ad$write_zarr() funções. Preciso de alguns dados de exemplo para testar essa funcionalidade.

Referências

Wolf, F. Alexander, Philipp Angerer e Fabian J. Theis. 2018. “SCANPY: Análise de dados de expressão gênica de célula única em larga escala”. Biologia Genômica 19 (fevereiro): 15. https://doi.org/10.1186/s13059-017-1382-0.



[ad_2]

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br