Lasso linear model实例 | Proliferation index | 评估单细胞的增殖指数
背景:We developed a cell-cycle scoring approach that uses expression data to compute an index for every cell that scores the cell according to its expression of cell-cycle genes. In brief, our approach proceeded through four steps. (A) We reduced dimensionality of the dataset to the cell-cycle relevant genes. (B) In this subspace we performed, as a first approximation, a simple K-means clustering to separate non cycling from cycling cells and (C) we used this clustering as a reference to learn a function that takes the gene expression as the input and returns a cell-cycle score as an output. (D) We used this function to calculate a score for each single cell.
数据是每个细胞的基因表达矩阵,需求是根据基因表达信息计算每一个细胞的增殖指数(依据是细胞周期基因)。
我们常规能想到的就是建立一个线性模型,每一个细胞周期基因当做一个变量,输出一个数值,就是增殖指数,然后正则化到0~1.
问题是这样的话,每个基因前面的系数怎么确定?所以建议一个简单的方程是不可行的,我们必须要做有监督学习模型。那么有监督的数据怎么来呢?我们的数据没有lable啊。
下面就是文章中的方法:
我们需要计算增殖指数的数据没有lable,那我们就手动为其建立lable。
通过简单的kmeans聚类,我们就可以筛选出增殖指数高的细胞类群,以此为训练集,来构建监督学习模型。
然后用建好的模型再来对我们的数据进行预测,得到每一个细胞的增殖指数。
We started by selecting a wide selection of genes related to cell-cycle and proliferation. We used the PANTHER GO database and selected all the genes that were described by one of the following terms: DNA metabolic process, DNA replication, mitosis, regulation of cell cycle, cell cycle, cytokinesis, histone, DNA-directed DNA polymerase, DNA polymerase processivity factor, centromere DNAbinding protein. We restricted our features to those genes. Genes that were detected at less than 10 molecules in the dataset were removed. We calculated the pairwise correlation coefficient matrix, and selected the genes that were strongly correlated (99th percentile of the matrix) with at least 12 other genes. The genes passing the filters described above were used for clustering cells using K-means (Python scikit-learn implementation, on log-centered data, default parameters) with the rationale that the main axis of variation expected would span across dividing and non-dividing cells. Then a linear regression model with L1-norm regularization was fitted that used a learning function which took expression data of a cell and categorized into two classes, 1 when a cell belongs to the cycling cluster and 0 when it did not. Importantly, to avoid both overfitting the score on the first approximation clusters and also to obtain a more generalizable model, we used a strong regularization (5 times the one determined by cross-validation; alpha = 0.01).
This procedure was used for both the mouse and human embryonic dataset. The function learnt on the human embryonic dataset was also used to determine the proliferation index of the hPSCs.
当然文章的处理更加细心:
1. 首先从PANTHER GO数据库选出cell cycle相关的基因;
2. 计算了每个基因的相关性,去掉了独立存在的基因;
3. K-means聚类分三类,得到学习数据
4. linear regression model with L1-norm,为防止过拟合,参数设得比较严格。
这种方法从机器学习的角度给了一个大致的增殖指数,肯定不会错,但是应该也不会太准,但是用于比较不同细胞的增殖差异还是足够的。
如果想要ground truth,就必须要得到实验上更严格的数据来源,比如高度增殖的细胞和完全不增殖的细胞的基因表达数据。
代码:ipynb-lamanno2016-proliferation.ipynb
代码注释已经比较完善,后续会进行总结分析,并扩展延伸到其他应用上。
所以这种模型通用性还是比较强的。
比如拿细胞凋亡和细胞衰老相关的基因来计算每个细胞的衰老程度。
核心问题是如何选择出合适的gene list!对于有的指标很难选出合适的gene list。
别看这个模型简单,其实细细探究起来是有问题的。
1. 你为什么要重复利用数据,为什么不一次就搞完?kmeans也可以达到分离的效果啊,为什么还要用lasso?
2. kmeans也可以根据到中心的距离来得到打分
3. 本方法的核心问题就是你没有labelled trainset。如果有的话,一个lasso直接解决问题。
4. 其实我觉得这个是一个可行的方法,kmeans是存在over fitting的,我用kmeans只是想得到一个raw的train set,然后用lasso来进行精细打分。
5. lasso的长处就是防止过拟合和筛选变量。
6. 还有一些细节,比如阈值的设计,要自己测试的!
再次重申一遍,L1就是lasso,L2就是ridge。
还有,有时候你以为听众听懂了,其实他们没听懂,讲话语速不要太快!!!
Lasso linear model实例 | Proliferation index | 评估单细胞的增殖指数的更多相关文章
- 广义线性模型(Generalized Linear Model)
广义线性模型(Generalized Linear Model) http://www.cnblogs.com/sumai 1.指数分布族 我们在建模的时候,关心的目标变量Y可能服从很多种分布.像线性 ...
- Bayesian generalized linear model (GLM) | 贝叶斯广义线性回归实例
一些问题: 1. 什么时候我的问题可以用GLM,什么时候我的问题不能用GLM? 2. GLM到底能给我们带来什么好处? 3. 如何评价GLM模型的好坏? 广义线性回归啊,虐了我快几个月了,还是没有彻底 ...
- 从线性模型(linear model)衍生出的机器学习分类器(classifier)
1. 线性模型简介 0x1:线性模型的现实意义 在一个理想的连续世界中,任何非线性的东西都可以被线性的东西来拟合(参考Taylor Expansion公式),所以理论上线性模型可以模拟物理世界中的绝大 ...
- 2. Linear Model
1. 基本形式 给定由$d$个属性描述的示例 $\textbf{x} =(x_1;x_2;...,x_n)$,其中$x_i$是$x$在第$i$个属性上的取值,线性模型(linear model)试图学 ...
- asp.net Post Get提交数据转Model实例
转自:http://blog.csdn.net/daodaowolf/article/details/8990694 此功能是将客户端HTTP协议POST GET方式提交的数据转换为某个Model实例 ...
- Note for video Machine Learning and Data Mining——Linear Model
Here is the note for lecture three. the linear model Linear model is a basic and important model in ...
- [机器学习]Generalized Linear Model
最近一直在回顾linear regression model和logistic regression model,但对其中的一些问题都很疑惑不解,知道我看到广义线性模型即Generalized Lin ...
- 【AMAD】django-reversion -- 为django的model实例带来版本控制
动机 简介 个人评分 动机 有时候数据表的数据也需要版本控制.比如论坛的帖子,作者是可以改动的,但是你想要留下每个改动的版本. 简介 django-reversion1的特点: 可以回滚一个insta ...
- Generic recipe for data analysis with general linear model
Generic recipe for data analysis with general linear model Courtesy of David Schneider State populat ...
随机推荐
- AnswerOpenCV一周佳作欣赏(0615-0622)
一.How to make auto-adjustments(brightness and contrast) for image Android Opencv Image Correction i' ...
- bzoj 2820 YY的GCD - 莫比乌斯反演 - 线性筛
Description 神犇YY虐完数论后给傻×kAc出了一题给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对kAc这种 傻×必 ...
- bzoj 2527 Meteors - 整体二分 - 树状数组
Description Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby gala ...
- 如何评价 React 实现的前端 UI 库 material-ui?
作者:知乎用户链接:https://www.zhihu.com/question/51040975/answer/208582603来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请 ...
- JPush Flutter Plugin(Futter推送-极光推送)
https://pub.flutter-io.cn/packages/jpush_flutter JPush's officially supported Flutter plugin (Androi ...
- CentOS7 系统升级,删除centos7开机界面多余选,升级至最新的内核
一:升级系统 1.检查系统版本: [root@localhost /]# cat /etc/redhat-release CentOS Linux release (Core) 2.运行yum命令升级 ...
- 101. Symmetric对称 Tree
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...
- 160CrackMe练手 001
peid判断无壳,打开输入伪码注册,根据报错od查找字符串 接下来定位到字符串周边代码 0042FA15 |. 8D55 F0 lea edx,[local.4] 0042FA18 |. 8B83 D ...
- centos6.5下安装mysql5.6
链接: https://blog.csdn.net/liangzhuoxun/article/details/81572094 该链接有个错误: 让修改的profile文件立即生效的命令为./etc/ ...
- Hadoop之mapreduce
doc Hadoop初探之Stream Hadoop Stream 用python + hadoop streaming 编写分布式程序(一) -- 原理介绍,样例程序与本地调试 用python + ...