2018.12.28
关于细胞分化轨迹学习小笔记
- 学习工具
- 相关学习文章
- 学习框架
- 1.降维
- 2.轨迹算法
- 文章解读
- 一、Monocle2
- 1.流程
- 2. 方法
- 2.1 反转图嵌入
- 2.1.1定义
- 2.1.2优化公式
- 2.1.3 DDRTree:通过学习树来降低维数
- 2.2 伪时间计算及分支确定
- 2.2.1 定义
- 2.2.2 公式
- 2.3 评估伪时间和分支分配的准确性或稳健性
- 3. 草图
- 对自己论文的想法
学习工具
百度学术:用来搜索相关文献,查看引证文章以及被引用文章,被引量,发表期刊等。
谷歌学术:用来搜索百度学术里面搜不到的文章
链接在这里.LaTeX在线公式编辑器.
相关学习文章
链接1: Reversed graph embedding resolves complex single-cell trajectories–2017( 《Nature Methods》被引量40).
链接2: Reconstruction of complex single-cell trajectories using CellRouter–2018( 《Nature Communications》被引量1).
链接3: Uncovering pseudotemporal trajectories with covariates from single cell and bulk expression data–2018(被引量0).
链接4: Mpath maps multi-branching single-cell trajectories revealing progenitor cell progression during development–2017(《Nature Communications》被引量12).
链接5: Graph abstraction reconciles clustering with trajectory inference through a topology preserving map of single cells–2018(被引量3).
完整的流程 Python语言: SCANPY: large-scale single-cell gene expression data analysis–2018(python《Genome Biology》被引量3).
pk t-SNE的降维方法: TCM visualizes trajectories and cell populations from single cell data–2018( 《Nature Communications》被引量0).
评判好坏的框架: A comparison of single-cell trajectory inference methods: towards more accurate and robust tools–2018( 《Nature Communications》被引量2).
概述性文章: Computational approaches for interpreting scRNA‐seq data–2017( 《Febs Letters》被引量8).
可能用到的文章(反转图): Probabilistic Dimensionality Reduction via Structure Learning.–2016( 《IEEE Transactions on Pattern Analysis & Machine Intelligence》被引量0).
学习框架
- 归一化
- 降维(重要)
- 聚类
- 轨迹重建
1.降维
- PCA:
1933年提出,线性降维算法,它不能解释特征之间的复杂多项式关系 - t-SNE:
2008年提出,非线性降维算法,计算成对的条件概率,并试图最小化较高和较低维度的概率差的总值。
同时保留数据的局部和全局结构,局部方法寻求将流型上的附近点映射到低维表示中的附近点, 全局方法试图保留所有尺度的几何形状,即将附近的点映射到附近的点,将远处的点映射到远处的点。
应用方面:几乎可以用于任何高维数据。不过大部分应用集中在图像处理,自然语言处理,基因数据以及语音处理,它还被用于提高心脑扫描图像的分析。
t-sne原理解释以及代码示例.
2.轨迹算法
文章解读
一、Monocle2
Reversed graph embedding resolves complex single-cell trajectories.
1.流程
- dpFeature selection, identifying genes that define biological process 确定和生物过程有关的基因
selecting the genes differentially expressed between clusters of cells identified with tSNE dimension reduction followed by density peak clustering选择差异表达基因; - 反向图嵌入(GRE):默认DDRTree。它是一种流形学习算法,旨在将主要图形嵌入高维单细胞RNA-seq数据中,找到高维基因表达空间与低维空间映射,同时在这个缩小的空间中学习图的结构(K个质心)来解决这个问题;
- 伪时间分配和分支计算:利用DDRTree构建MST,将细胞投影到MST上,MST递归计算伪时间;
- 评估伪时间和分支分配的准确性或稳健性。
优点:无需指定细胞命运或分支点的数量,假设很少。
2. 方法
2.1 反转图嵌入
2.1.1定义
- ? = {x1, …, xN} 代表细胞在高维空间中的坐标,NNN是细胞数量,xix~i~xi是第iii个细胞的 特征 向量(根据dpFeature selection选择的特征基因表达量);
- ? = {z1, …, zN} 代表细胞在低维空间中的坐标;
? 与 ? 是高维与低维之间的一一对应关系 - 低维空间中的无向图 ? = (?, ℰ)
- ? is the learned trajectory (for example, a tree) along which the cells transit;
- ? = {V1, …, VN} ,where each ViV~i~Vi corresponds to latent point zi, and ziz~i~zi is the principal point on ? corresponding to the cell xix~i~xi.
- ℰ是无向加权边,让bijb~ij~bij 代表连接顶点 (Vi,Vj)(V~i~, V~j~)(Vi,Vj)的权重, which represents the connectivity between zizizi and zjzjzj. 若 bij>0bij >0bij>0 则边存在于?中,若 bij=0bij =0bij=0 边不存在 ;
注:RGE learns the graph ? as well as a function f? that maps back to the input data space
2.1.2优化公式
- 为了学习 ?, ? and f?,需要优化下面公式:
where Gb is a set of feasible graph structures parameterized {bi,j, ∀ i, j}, and ℱ is a set of functions mapping a latent, low-dimensional point to a point in the original, high-dimensional space
改进版:while also ensures neighbor points on low dimensional principal graph be “neighbors” in the input dimension. The optimization problem is formulated as:
where λ is a parameter that adjusts the relative strength of these two summations.
注:接下来,需要对 Gb 和 f? 设定一些限制(见2.3)
2.1.3 DDRTree:通过学习树来降低维数
DDRTree 优点
GRE方法有很多,DDRTree只是其中的一个(本文提出的)与SimplePPT等比较,它的优点如下:
First, 不假设图形位于输入空间中,并且可以在学习轨迹时减小其维数;
Second,它也不要求每个数据点在图中有一个节点(好处:加速算法并减少其内存占用)。DDRTree 学习线性投影函数(从低维到高维的投影)
f?(zi) = Wzi, where W = [w1, …, wd] ∈ RD×d
f?(zi) 是一个矩阵 ,它的列组成一组正交基{w1, …, wd} ( D is the dimension of feature genes, d is the dimension of latent space)DDRTree 学习一个主图 principal graph(同时学习)
找到一组 latent points ,Y={ yk },k=1,2,…,K
它们是 { zi } i=1,2,…N 的重心,其中 K ≤ N 并且主图便是由这些重心点的生成树得来.
DDRTree通过优化以下公式:
事实上,此算法相当于在点集 ? 上进行soft K-means 聚类, 然后在K个聚类中心上学习图。
σ > 0 是正则化参数
不懂: The matrix R with the (i, k) th element as ri,k transforms the hard assignments used in K-means into soft assignments with σ > 0 as a regularization parameter.
上述优化公式可以通过交替优化直到收敛来解决。
在Monocle 2中,我们提供了一个程序根据实验中的细胞数量 N 自动选择适用于各种数据集的 K 值(重心个数):
在第一次优化迭代期间,通过在低维空间中使用k-mediods聚类来初始化这些K个重心。
2.2 伪时间计算及分支确定
Monocle 2 调用 DDRTree 来学习主树,然后将每个低维空间的细胞?投影到离主树( formed by principal points ?)上最近的位置。 Monocle 2 允许用户方便地选择树的尖端作为 root,然后从根横穿树,计算每个细胞到根细胞的测地距离,将其作为其伪时间,并同时分配分支或段; 对于不在尖端主点(主树的末端节点)附近的点,Monocle 2在主树上找到最近的线段,然后将它们投影到该段上最近的点。
2.2.1 定义
- c = (c1, c2, …),其中c1,c2,…表示细胞在低维空间(潜在空间)中的坐标 ,该点到离主图最近的重心点A 组成的向量记作 Ac→\overrightarrow{Ac}Ac;
- 由两个最近的主点(A = (A1, A2, …),B = (B1, B2, …))形成的线段记作AB→\overrightarrow{AB}AB;
- 定义伪时间 t , t=Ac→⋅AB→∥AB∥t=\frac{\overrightarrow{Ac} \cdot \overrightarrow{AB}}{\Vert{AB}\Vert}t=∥AB∥Ac⋅AB;
2.2.2 公式
(1)最小生成树
- 投影可以计算为:
然后,我们计算所有投影点之间的距离(两两计算),并在投影点上构建最小生成树。(该MST用于为每个细胞分配伪时间,使用 深度优先遍历 DFS 法则)。 最小生成树(博主Wiliz) - 更新迭代:算法将细胞移向离它们最近的树顶点,更新顶点的位置以“适应”细胞,学习新的生成树,并迭代继续此过程,直到树和细胞的位置收敛(见方法中的方程式3)。
注:MST中不允许距离为0,所以,将最小正距离(所有细胞对之间)添加到所有距离值。
若不这样做,本文可能会出现两个点投影到一个点的情况,这样子距离便为0
(2)分支确定
- 将每个细胞分配给轨迹段bx(G, π, i),它根据排序列表π 和 图形结构G 为 细胞 i 指定所在的区段bx。
我们在根细胞中设置 bx=1bx = 1bx=1,并在每次到达新的分支点时增加段计数器 bx,公式如下:
- j ≼ i 中, j 是 i 之前的已排好的细胞(排序列表 π 中), |E(Gi)| 代表细胞 i 的度。
一般情况下,主点(重心)数目都小于细胞数目,细胞将分配到离其最近的主点所在的段。
(3)伪时间计算(在MST上递归计算)
- φt(bx,si)φt(bx, si)φt(bx,si) :在生物分化过程s上 ,并且已知其轨迹分支为bx 的细胞 i 的伪时间。
- 利用欧氏距离,by adding the pseudotime of its parent cell on the MST of the projection points (closest cell on the same branch)
2.3 评估伪时间和分支分配的准确性或稳健性
- 对于每个算法,进行伪时间分配与参考排序之间的对比,通过 two measures of correlation (Pearson’s Rho (default) and Kendall’s Tau) 来衡量优劣。
- 利用 adjusted Rand index (ARI) 这个指标(引用论文,它是用于测量聚类精度的通用度量),来衡量分支段指派的准确性或鲁棒性;
- 参考排序 和 本算法的排序之间的公共细胞的数量S,? = {?1, ?2, …, ?r} and ? = {?1, ?2, …, ?r}.代表参考排序和伪时间分支排序(哪个是哪个还未分清);
- ni,j 代表在参考排序和伪时间分支排序之间重合的细胞数目, 来自第i 段的 ( ?i) 和j 段的( ?j) ,
公式表示: ni,j = |?i ∩ ?j|; - 使用参考排序定义具有段i的细胞数量:ai=∑j=1snijai=\sum_{j=1}^s nijai=∑j=1snij;
- 基于算法排序的具有段j的细胞数量:bj=∑i=1rnijbj=\sum_{i=1}^r nijbj=∑i=1rnij;
- The adjusted Rand Index :
这是两个数据分段分配之间相似性的度量,当ARI接近1时,两个排序之间的分段分配更加一致。
3. 草图
- 图一:对于优化公式的理解
- 图二:点的正交投影
- 图三:分支轨迹确定
对自己论文的想法
- 可以从降维方面考虑(拓扑方面,找到日期较新效果好的文章应用到CellRouter里面)
- 对于已有的轨迹重建算法,做稍小改动(伪扩散、树、图等)
2018.12.28相关推荐
- 日常作业2018.12.28
作业 1.赌博游戏 package com.job12_1;import java.util.Scanner; /*** 赌博游戏* @author Administrator* 2018.12.26 ...
- 【一周头条盘点】中国软件网(2018.12.24~2018.12.28)
每一个企业级应用的人都置顶了中国软件网 中国软件网为你带来最新鲜的行业干货 一周热点 网信办:金融信息服务提供者不得散布虚假金融信息 近日,国家网信办发布金融信息服务管理规定,规定明确,金融信息服务提 ...
- 《惢客创业日记》2018.12.28(周五)创业从0到1的10个阶段(七)
目前,每天的工作已经非常的清晰和明确,都是在这三件事之间重复,产品原型.创业日记和学习产品. 接下来,再继续给大家分享创业从0到1的0.6阶段(产品原型阶段).一提到产品原型,可能很多人都以为是计算机 ...
- 2018.12.23 周日--【绝代风华】《幸福2018》
本文地址:2018.12.23 周日--[绝代风华]<幸福2018> 原文地址(微信公众号):[绝代风华]<幸福2018> 一.概述2018年 [01 2018年的我]: 说起 ...
- Vue 第一天学习 ---2018.06.28
Vue 第一天学习 ---2018.06.28 1.引包 2.学会控制元素.显示数据,基本框架建立 <title>Document</title> <script sr ...
- 训练日志 2018.12.26
今天看了一天网络流最大流,看到自闭...全程就是 wc 这也能实现,wc 这还能实现,wc 为什么这个模版的运行跟我手撸的结果不一样...跪了... 下午学院开会的时候跟实验室的几个大佬交流了一下进度 ...
- 训练日志 2018.12.20
明天考通信,这几天一直在复习,闲暇时间做了几道差分约束的题换了换脑子,今晚正好弄完差分约束 明天考完后开始网络流的内容 2018.12.20
- 训练日志 2018.12.16
前几天准备 4 级一直没怎么看,考完了又去新生赛帮忙,2-SAT 基本弄完了,但跟二分结合的题还没刷,周三前刷出来. 2018.12.9
- 训练日志 2018.12.9
这周在复习电子考试的间隙,断断续续的终于把二分图的内容看完了,下周要考 4 级,这几天准备抽空做一下 2-SAT 的题 2018.12.9
最新文章
- PHP---微信JS-SDK获取access_token/jsapi_ticket/signature权限签名算法,php/thinkphp实现微信分享自定义文字和图片...
- sklearn线性回归
- 解决spring配置c3p0连接池,tomcat无法正常启动
- layui多文件上传讲解_Layui 多文件上传 SSH
- Apahce服务器配置非根目录的虚拟目录
- AMD如何争夺Intel市场份额?血拼高配PC装机量
- Pascal VOC 数据集国内下载
- BZOJ.3262.陌上花开([模板]CDQ分治 三维偏序)
- struts2中struts.xml配置文件详解
- 获取 CSDN 1024 程序员节勋章教程
- <2021SC@SDUSC>开源游戏引擎Overload代码分析五:OvEditor——RawShaders.cpp
- singleTask
- 手势解锁java后端设计_自己定义九宫格手势解锁
- 11、权重残差图、RLE和NUSE
- 学而思王帆初中语文教学视频
- 计算机用户名怎么改好听,电脑版本优酷视频如何设置呢称_昵称起名
- 台式计算机能不能安装蓝牙驱动,几个方法教你台式电脑怎么安装蓝牙
- 门限电子签名DEMO(协同签名)
- 编码规则的发展历程(通俗版)
- jsp高级DOM和BOM
热门文章
- 反激变换器 闭环 仿真 flyback MATLAB simulink 输入60v,输出30v
- 立体布局图用什么软件做,制作商场电子地图的软件
- linux编译运行uart,Kindle4: 编译并运行upstream linux kernel – v4.4
- Ubuntu16.04配置orb_slam2环境,orb_slam的单目数据集,单目实时运行,RGB-D数据集的运行
- Panoply打开grib格式缺失SubCenter和Version字段
- 通过Shell 脚本向CK集群群分发SQL指令
- 解决 HttpServletRequest 流数据不可重复读
- Postgresql源码(66)insert on conflict语法介绍与内核执行流程解析
- NFT Insider #87:The Sandbox 收购游戏开发工作室 Sviper,GHST 大迁徙即将拉开帷幕
- 《C++ Primer》学习笔记