10X单细胞(10X空间转录组)数据分析之降维(scLINE)和聚类(ScCAEs)

hello,大家好,又是新的一周,我们今天来学习一些简单的内容,关于降维聚类的新的认识。说到底,降维聚类其实都是根本的问题,一切的分析都基于此,所以如何才能做好这个工作,其实需要很深的背景和积累。

先来第一个,scLINE,大家可以参考scLINE: A multi-network integration framework based on network embedding for representation of single-cell RNA-seq data

scLINE 是一个 R 包,用于对单细胞 RNA-seq 数据进行降维。 scLINE 整合了单细胞 RNA-seq 数据和从公共数据库整理的多个基因网络,补充基因间的相互作用,解决了因 drop-out 事件导致信息缺失的问题。 说白了,利用现有大量的公共数据对单细胞drop-out事件进行填补,非常有意义的分析。
图片.png
  • 图注: (A) 基于 scRNA-seq 数据构建细胞-基因网络。 (B) 基于多个基因相互作用数据库整合和构建基因网络。 (C) 在每次迭代中,选择细胞-基因网络中的边,根据表达信息和整合的基因关系更新相应的细胞和基因的低维向量。 训练模型以获得细胞和基因的低维表示。

接下来我们看一下分析代码

1、安装与加载
install.packages("devtools")
library(devtools)
install_github("BMILAB/scLINE")
library(scLINE)
2、准备数据
2.1 单细胞转录组数据
scLINE 的输入是一个 scRNA-seq 数据矩阵,其中行对应于基因,列对应于细胞。 示例中,以来自人类神经元细胞的数据集 Usoskin 为例。
> load(system.file("data","Usoskin.Rdata",package = "scLINE"))
> exp_mat<-Usoskin$rawdata
> dim(exp_mat)
[1] 25334   622
> exp_mat[6:10,1:5]
      L128_B01 L128_C01 L128_D01 L128_E01 L128_F01
AAMP    55.678    303.9   156.57   80.096   185.63
AANAT    0.000      0.0     0.00    0.000     0.00
AARS    83.517    303.9   156.57    0.000     0.00
ABAT    27.839      0.0     0.00    0.000     0.00
ABCA1    0.000      0.0     0.00    0.000     0.00
2.2 构建基因网络
这一步需要输入基因网络列表。 网络需要以三元组的形式表示,有以下三列:基因 ID、基因 ID、分数。 基因网络可以来源于现有的公共数据库或用户通过其他方式获得的基因间关系网络。 在示例中,我们以从公共数据库 String(v9.1)、HumanNet(v1) 和 IntPath(v2.0) 中集成的 3 个基因网络为例。
> load(system.file("data","string.Rdata",package = "scLINE"))
> load(system.file("data","ppi.Rdata",package = "scLINE"))
> load(system.file("data","humannet.Rdata",package = "scLINE"))
> gene_network<-list(string = string,ppi = ppi,humannet = humannet)
> str(gene_network)
List of 3
 $ string  :'data.frame':   11353056 obs. of  3 variables:
  ..$ V1: chr [1:11353056] "ARF5" "ARF5" "ARF5" "ARF5" ...
  ..$ V2: chr [1:11353056] "PRKCG" "ZNF148" "PRDX6" "KALRN" ...
  ..$ V3: int [1:11353056] 260 164 159 194 164 189 240 164 164 224 ...
 $ ppi     :'data.frame':   39240 obs. of  3 variables:
  ..$ X1: chr [1:39240] "ALDH1A1" "ITGA7" "PPP1R9A" "SRGN" ...
  ..$ X2: chr [1:39240] "ALDH1A1" "CHRNA1" "ACTG1" "CD44" ...
  ..$ X3: num [1:39240] 1 1 1 1 1 1 1 1 1 1 ...
 $ humannet:'data.frame':   476399 obs. of  3 variables:
  ..$ V1: chr [1:476399] "DLST" "MCM2" "FEN1" "EIF4A2" ...
  ..$ V2: chr [1:476399] "OGDH" "MCM3" "PCNA" "EIF4G1" ...
  ..$ V3: num [1:476399] 4.26 4.25 4.24 4.24 4.24 ...
3、Standard analysis work-flow
可以通过函数 scLINE 获得单个细胞的低维表示矩阵。 需要指定低维向量维度L、迭代次数T、负样本数K、初始学习率rho,以及是否设置随机权重Random_weight的选择。
> lowdim_list<-scLINE(exp_mat, gene_network, L = 100, K = 5, T = 3e7, rho = 0.025, Random_weight = TRUE)
Mathching geneID...
Constructing mapping tables for sampling...
Start iterating...
Visualize the obtained low dimensional matrix in 2D through the function visualize.
visualize(lowdim_list$cell_low,Usoskin$label)
图片.png

总结一下,这个软件虽然不错,但是输入的东西要求比较多,如果有条件的话,这个分析是不错的。

接下来第二个软件,ScCAEs,聚类分析,大家可以参考ScCAEs: Deep clustering single-cell RNA-seq via convolutional autoencoder embedding and soft K-means,ScCAEs首先通过卷积自编码器学习从原始scRNA-seq到低维特征的非线性映射,然后通过具有KL散度的正则化软Kmeans算法迭代完成细胞聚类。 Kmeans的聚类方式其实相对少见,因为需要人为指定聚类数的关系,很少有人用,不过这个算法有其优势,在一些特殊的情况下还是会用到。

图片.png

我们来看一下代码

准备数据,运行数据集,首先应生成“data.csv”(基因计数矩阵,其中行代表细胞,列代表基因)和“label.csv”(真实标签)两个文件。 然后,可以将包含上述两个文件(“data.csv”和“label.csv”)的数据集文件夹放入“datasets”并运行以下代码:
python scCAEs.py --dataset folder_name
然后我们可以得到如下结果,In the following two images, the first image is colored with clustering results, and the second image is colored with true labels.
图片.png
The inference of cellular trajectory
图片.png

这个软件的分析倒是有点先入为主的嫌疑。

当然,方法都是人用的,我们要甄别,不能拿来就用。

生活很好,有你更好~~

©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,802评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,109评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,683评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,458评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,452评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,505评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,901评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,550评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,763评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,556评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,629评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,330评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,898评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,897评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,140评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,807评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,339评论 2 342

推荐阅读更多精彩内容