午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

R中讀取h5ad文件并創(chuàng)建Seurat、cellchat和monocle對象

 生信探索 2024-09-30 發(fā)布于云南

.h5ad文件,這是一種由Scanpy庫常用的單細(xì)胞數(shù)據(jù)分析文件格式,為anndata對象,可以使用R包anndata讀取到R中為R6對象,即有類似python中的面向?qū)ο蟮膶ο?,可以使?符號訪問屬性和應(yīng)用綁定的公用方法。

因此我們可以把最重要的信息,如表達(dá)矩陣,細(xì)胞注釋信息,高變基因信息提取出來用于創(chuàng)建Seurat、CellChat、monocle對象用于相應(yīng)的分析。

安裝和加載必要的R包

首先,確保安裝了Seurat, SeuratObjectCellChat, 以及monocle 包。如果未安裝,可以通過以下命令安裝:

if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install('monocle')
remotes::install_version("SeuratObject""4.1.4", repos = c("https://satijalab.v", getOption("repos")))
remotes::install_version("Seurat""4.4.0", repos = c("https://satijalab.v", getOption("repos")))
remotes::install_github('jinworks/CellChat')
remotes::install_github('immunogenomics/presto')
install.packages('anndata')
install.packages('reticulate')

然后加載這些包:

library(Seurat)
library(tidyverse)
library(CellChat
library(monocle)
library(magrittr)
library(reticulate)

設(shè)置python分析環(huán)境

確保python分析環(huán)境中安裝了anndata、scnapy等包

reticulate::use_condaenv(condaenv = '/home/data/will/miniforge3/envs/sc', required = TRUE)

讀取.h5ad文件

使用anndata包讀入adata.h5ad文件,讀入后的adata數(shù)據(jù)結(jié)構(gòu)如下,X儲存了表達(dá)矩陣行樣本名列是基因名,obs對應(yīng)seurat中的meta.data是細(xì)胞的注釋信息,var為基因的注釋信息數(shù)據(jù)框

ad <- reticulate::import("anndata")
adata <- ad$read_h5ad('adata.h5ad')

創(chuàng)建CellChat對象

CellChat通常需要特定的輸入格式,比如單細(xì)胞表達(dá)矩陣。如果您打算使用Seurat對象的數(shù)據(jù)進(jìn)行分析,可能需要提取表達(dá)矩陣和元數(shù)據(jù),具體方法請參考CellChat的文檔或教程。

cc <- CellChat::createCellChat(adata$T$X, meta=adata$obs, group.by = 'CellType')

創(chuàng)建Monocle 對象

對于Monocle ,首先確保您的數(shù)據(jù)已經(jīng)被正確整理成適合Monocle的格式,然后使用以下命令創(chuàng)建Monocle對象

fdata <- adata$var
fdata$gene_short_name <- rownames(fdata)
cds <- monocle::newCellDataSet(
    cellData=Matrix::Matrix(adata$T$X),
    phenoData = new("AnnotatedDataFrame", data = adata$obs),
    featureData = new("AnnotatedDataFrame", data = fdata),
    expressionFamily = VGAM::negbinomial.size()
)

創(chuàng)建Seurat對象

創(chuàng)建Seurat對象,保存原始counts信息,meta.data每個細(xì)胞的注釋信息,meta.features每個基因的注釋信息,umap信息用于繪圖。

對原始counts取log和標(biāo)準(zhǔn)化以便后續(xù)結(jié)果可視化和其他計算

srt <- Seurat::CreateSeuratObject(
  counts=adata$T$layers['counts'],
  assay = "RNA",
  meta.data = adata$obs
)

srt[['RNA']]@meta.features <- adata$var

# 增加umap信息
coord <- adata$obsm$X_umap
rownames(coord) <- adata$obs_names
colnames(coord) <- c('umap_1','umap_2')

srt[['umap']] <- SeuratObject::CreateDimReducObject(
   embeddings = as.matrix(coord),
   key = "umap_",
   assay = "RNA"
 )
srt %<>% Seurat::NormalizeData() %>% Seurat::ScaleData(features=rownames(srt))
  1. 計數(shù)矩陣 (counts): 存儲每個細(xì)胞與基因的原始計數(shù)或經(jīng)過歸一化處理的表達(dá)值。這是Seurat對象的核心數(shù)據(jù),反映了每個細(xì)胞中各個基因的表達(dá)水平
  2. 元數(shù)據(jù) (meta.data): 包含每個細(xì)胞的額外信息,如細(xì)胞類型標(biāo)簽、樣本來源、實(shí)驗(yàn)條件等。這些信息對于后續(xù)的分析(如分群、注釋)至關(guān)重要。
  3. 特征(基因)數(shù)據(jù)(meta.features):每個特征(基因)的注釋信息
  4. log后的數(shù)據(jù) (data): 經(jīng)過規(guī)模校正(scale)的表達(dá)數(shù)據(jù),常用于降維和聚類分析之前,以消除技術(shù)偏差和細(xì)胞間總表達(dá)量的差異。
  5. 標(biāo)準(zhǔn)化數(shù)據(jù) (scale.data): 經(jīng)過規(guī)模校正(scale)的表達(dá)數(shù)據(jù),常用于降維和聚類分析之前,以消除技術(shù)偏差和細(xì)胞間總表達(dá)量的差異。
  6. 降維 (reductions): 存儲諸如PCA(主成分分析)、t-SNE(t分布鄰域嵌入)、UMAP(統(tǒng)一曼哈頓距離逼近投影)等各種降維方法的結(jié)果。這些降維表示有助于數(shù)據(jù)的可視化和探索。
  7. 集群信息 (ident 或 clusters): 記錄細(xì)胞的聚類結(jié)果,即每個細(xì)胞歸屬的細(xì)胞類型或亞群標(biāo)簽。
  8. 特征(基因)選擇 (selected.features): 在某些分析階段,如可視化時,可能只選取一部分最具區(qū)分度的基因。這部分?jǐn)?shù)據(jù)就記錄了這些被選中的基因。
  9. 標(biāo)記基因 (markers): 存儲了各個聚類或細(xì)胞群體的標(biāo)志性基因,通常基于差異表達(dá)分析得到。
  10. 圖譜 (neighbors): 計算細(xì)胞間的相似性并建立細(xì)胞間的鄰接關(guān)系,這對于識別細(xì)胞群體邊界和細(xì)胞間的連續(xù)性非常重要。

Reference

https://anndata./articles/getting_started.html

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章