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  Dados de mobilidade COVID da Apple

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