1. 起因 之前的代码(单细胞分析实录(17): 非负矩阵分解(NMF)代码演示)没有涉及到python语法,只有4个python命令行,就跟Linux下面的ls grep一样的.然鹅,有几个小伙伴不会命令行,所以我决定再改写一下,把命令行都放到R下面运行. 2. 尝试 2.1 一开始,我的想法是教大家在R里面调用python,需要提前下载好anaconda和一些python包 然而想了想在Windows上安装python包可能对大家不是很友好,有些包很难装,我之前也弄了很久.考虑到这次更新是针…
本次演示使用的数据来自2017年发表于Cell的头颈鳞癌单细胞文章:Single-Cell Transcriptomic Analysis of Primary and Metastatic Tumor Ecosystems in Head and Neck Cancer.本次演示提供处理好的测试数据,以及所有代码,一共6个脚本(我目前写得最详细的教程,也是全网少有的). 数据的预处理就不演示了,预处理的代码存放在0.pre.R文件中. 以下是肿瘤细胞tsne图和原图的对比,和原文一致,说明前面…
之前写过三篇和CNV相关的帖子,如果你做肿瘤单细胞转录组,大概率看过: 单细胞分析实录(11): inferCNV的基本用法 单细胞分析实录(12): 如何推断肿瘤细胞 单细胞分析实录(13): inferCNV结合UPhyloplot2分析肿瘤进化 其中,第三篇帖子里面有两个注释代码,可以在基因和染色体长短臂两个层面对CNV做注释 这次对tree_anno.R代码做了更新,简单来说就是对原始CNV region的长度做了限制,最后的结果会输出更少更明显的CNV 之前在我这里拿过代码的读者如果需…
http://blog.csdn.net/pipisorry/article/details/52098864 非负矩阵分解(NMF,Non-negative matrix factorization) NMF的发展及原理 著名的科学杂志<Nature>于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果.该文提出了一种新的矩阵分解思想--非负矩阵分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩阵中所…
在文本主题模型之潜在语义索引(LSI)中,我们讲到LSI主题模型使用了奇异值分解,面临着高维度计算量太大的问题.这里我们就介绍另一种基于矩阵分解的主题模型:非负矩阵分解(NMF),它同样使用了矩阵分解,但是计算量和处理速度则比LSI快,它是怎么做到的呢? 1. 非负矩阵分解(NMF)概述 非负矩阵分解(non-negative matrix factorization,以下简称NMF)是一种非常常用的矩阵分解方法,它可以适用于很多领域,比如图像特征识别,语音识别等,这里我们会主要关注于它在文本主…
原文:漂浮广告代码兼容ie.firefox,多个漂浮不冲突,调用只需两行代码 将广告内容放在div中,设置一个id,然后用下面方法调用var adcls=new AdMove("div的id");adcls.Run();注意,在调用前要先引用Main.js和AdFloat.js,div也要在调用前写好,原因就不用说了吧或者也可以用下面方法,在页面加载完成时调用,就不用考虑位置了addEvent(window,"load",initad);function inita…
★ 如何把C++的源代码改写成C代码? C++解释器比C语言解释器占用的存储空间要大,想要在某些特定场合兼容C++代码,同时为了节省有限的存储空间,降低成本,也为了提高效率,将用C++语言写的源程序用C语言改写是很有必要的. C++与C区别最大的就是C++中的类的概念和特性,将C++改为C的问题,就转换成如何将类化去的问题. 方法有两种: ● 将C++中的面向对象特征去掉,先全部理解源代码的逻辑,然后改写; ● 是在C中保留面向对象的部分特征,用结构体实现类的功能. 第一种方法,对于类的数目很少…
前面我们已经学习了单细胞转录组分析的:使用Cell Ranger得到表达矩阵和doublet检测,今天我们开始Seurat标准流程的学习.这一部分的内容,网上有很多帖子,基本上都是把Seurat官网PBMC的例子重复一遍,这回我换一个数据集,细胞类型更多,同时也会加入一些实际分析中很有用的技巧. 1. 导入数据,创建Seurat对象 library(Seurat) library(tidyverse) testdf=read.table("test_20210105.txt",head…
在之前的文章里,我主要讲了如下两个内容:(1) 认识Cell Hashing:(2): 使用Cell Ranger得到表达矩阵.相信大家已经知道了cell hashing与普通10X转录组的差异,以及使用cellranger得到表达矩阵. 这一篇讲如何使用Seurat的HTODemux函数,CiteFuse的crossSampleDoublets函数两种方法拆分表达矩阵(混了不同来源的细胞),最后还会略微比较一下两种方法得到的结果的差异. HTODemux 这种方法的原理我在第一篇笔记中已经讲过…
Cell Ranger是一个"傻瓜"软件,你只需提供原始的fastq文件,它就会返回feature-barcode表达矩阵.为啥不说是gene-cell,举个例子,cell hashing数据得到的矩阵还有tag行,而列也不能肯定就是一个cell,可能考虑到这个才不叫gene-cell矩阵吧~它是10xgenomics提供的官方比对定量软件,有四个子命令,我只用过cellranger count,另外三个cellranger mkfastq.cellranger aggr.cellra…
一.矩阵分解回想 在博文推荐算法--基于矩阵分解的推荐算法中,提到了将用户-商品矩阵进行分解.从而实现对未打分项进行打分. 矩阵分解是指将一个矩阵分解成两个或者多个矩阵的乘积.对于上述的用户-商品矩阵(评分矩阵),记为Vm×n.能够将其分解成两个或者多个矩阵的乘积,如果分解成两个矩阵Wm×k和Hk×n.我们要使得矩阵Wm×k和Hk×n的乘积能够还原原始的矩阵Vm×n: Vm×n≈Wm×k×Hk×n=V^m×n 当中,矩阵Wm×k表示的是m个用户与k个主题之间的关系,而矩阵Hk×n表示的是k个主题…
0序 随着移动互联和大数据的拓展越发觉得算法以及模型在设计和开发中的重要性.不管是现在接触比较多的安全产品还是大互联网公司经常提到的人工智能产品(甚至人类2045的的智能拐点时代).都基于算法及建模来处理.     常见的词汇:机器学习.数据建模.关联分析.算法优化等等,而这些种种又都是基于规律的深度开发(也难怪道德经的首篇就提出道可道非常道,名可名非常名的说法),不管是线性还是非线性,总之存在关联关系,而我们最好理解的就是线性关系,简单的用个函数就能解决.比如我们生活中应用的比较的归纳总结,其…
本文从基础介绍隐语义模型和NMF. 隐语义模型 ”隐语义模型“常常在推荐系统和文本分类中遇到,最初来源于IR领域的LSA(Latent Semantic Analysis),举两个case加快理解. 向用户推荐物品 在推荐系统中,可以通过隐含语义模型将用户(user)和物品(item)自动分类,这些类别是自动生成的.这些类别也可以叫做“隐含的分类”,也许看不懂.每个用户或者物品会被分到多个类别中,属于某个类别的权重会被计算出来. 假设现在有一个大小为m×n的评分矩阵V,包含了m个用户对n个物品的…
最近Cell Systems杂志发表了一篇针对现有几种检测单细胞测序doublet的工具的评估文章,系统比较了常见的例如Scrublet.DoubletFinder等工具在检测准确性.计算效率等方面的优劣,以及比较了使用不同方法去除doublet后对下游DE分析.轨迹分析的影响. 现有的检测方法,基本都会先构造出虚拟doublet,然后将候选droplet与这些虚拟doublet比较,很相似的那些就定义为doublet.这里的虚拟doublet是通过随机组合两个(类)细胞的表达值得到的虚拟的do…
细胞通讯分析可以给我们一些细胞类群之间相互调控/交流的信息,这种细胞之间的调控主要是通过受配体结合,传递信号来实现的.不同的分化.疾病过程,可能存在特异的细胞通讯关系,因此阐明这些通讯关系至关重要. CellPhoneDB配有详实的受配体数据库,其整合了此前的公共数据库,还会手动矫正,以得到更加准确的受配体注释.此外,针对受配体有多个亚基的情况,也进行了注释.下面这张图显示了CellPhoneDB配有的数据库包含多少种分泌蛋白和膜蛋白.蛋白质复合物.受配体关系,以及它们来源于什么数据库. 1.…
这是一个新系列 差不多是一年以前,我定导后没多久,接手了读研后的第一个课题.合作方是医院,和我对接的是一名博一的医学生,最开始两边的老师很排斥常规的单细胞文章思路,即各大类细胞分群.注释.描述,所以起初的几个月都在摸索一条主线,再后来有主线了,要加实验验证,周期有点长.我这边的分析基本做完.读研生活还在继续,我也不能太在意这一个课题,尽管有些时候我也很着急,尽管我在这个课题上花了很多时间.整理分析流程是个好习惯,最大的受益者还是自己,所以接下来我打算把我在处理单细胞转录组过程中,学到的用到的所有…
今天的内容讲讲单细胞文章中经常出现的展示细胞marker的图:tsne/umap图.热图.堆叠小提琴图.气泡图,每个图我都会用两种方法绘制. 使用的数据来自文献:Single-cell transcriptomics reveals regulators underlying immune cell diversity and immune subtypes associated with prognosis in nasopharyngeal carcinoma. 去年7月发表在Cell Re…
在上一篇帖子中,我介绍了CellPhoneDB的原理.实际操作,以及一些值得注意的地方.这一篇继续细胞通讯分析的可视化. 公众号后台回复20210723获取本次演示的测试数据,以及主要的可视化代码. 所有的数据和结果文件均已打包,下载后直接就能跑下面的代码画图. 下面的代码可以绘制对称热图 (如果你不清楚为啥热图要沿着对角线对称,可以看一下之前的推文) library(tidyverse) library(RColorBrewer) library(scales) pvalues=read.ta…
在上一篇中,我已经讲解了展示marker基因的前两种图形,分别是tsne/umap图.热图,感兴趣的读者可以回顾一下.这一节我们继续学习堆叠小提琴图和气泡图. 3. 堆叠小提琴图展示marker基因 相比于其他可视化形式,小提琴图可以更直观地展示某一类亚群的某一个基因的表达分布情况.我的marker基因一共选了12个,下面来画图: Seurat内置的VlnPlot函数可以直接画, library(xlsx) markerdf2=read.xlsx("ref_marker2.xlsx",…
1.交叉验证 交叉验证(Cross validation),交叉验证用于防止模型过于复杂而引起的过拟合.有时亦称循环估计, 是一种统计学上将数据样本切割成较小子集的实用方法. 于是可以先在一个子集上做分析, 而其它子集则用来做后续对此分析的确认及验证. 一开始的子集被称为训练集.而其它的子集则被称为验证集或测试集. 交叉验证是一种评估统计分析.机器学习算法对独立于训练数据的数据集的泛化能力(generalize).交叉验证一般要尽量满足: 1)训练集的比例要足够多,一般大于一半2)训练集和测试集…
声明 CLion程序版权为jetBrains全部.注冊码授权为jetBrains及其付费用户全部,本篇仅仅从兴趣出发,研究其注冊码生成算法. 不会释出不论什么完整的源码. 网上查了下.已有注冊机,所以想要key的同学不要找我:p 背景 打算学习cocos2dx,奈何vim仅仅会ggvG,被jetBrains惯坏了,找到了CLion,试了下,果然神器.我等菜鸟正好能够拿来愉快地学习书写c++了. 可是,试用版有30天的限制.又没有学生授权.懒得折腾,看下它的注冊算法吧. 本篇用到的主要工具和命令:…
1.什么是非负矩阵分解? NMF的基本思想可以简单描述为:对于任意给定的一个非负矩阵V,NMF算法能够寻找到一个非负矩阵W和一个非负矩阵H,使得满足 ,从而将一个非负的矩阵分解为左右两个非负矩阵的乘积.如下图所示,其中要求分解后的矩阵H和W都必须是非负矩阵. 分解前后可理解为:原始矩阵的列向量是对左矩阵中所有列向量的加权和,而权重系数就是右矩阵对应列向量的元素,故称为基矩阵,为系数矩阵.一般情况下的选择要比小,即满足,这时用系数矩阵代替原始矩阵,就可以实现对原始矩阵进行降维,得到数据特征的降维矩…
非负矩阵分解(NMF)是一种无监督学习算法,目的在于提取有用的特征(可以识别出组合成数据的原始分量),也可以用于降维,通常不用于对数据进行重建或者编码. NMF将每个数据点写成一些分量的加权求和(与PCA相同),并且分量和系数都大于0, 只能适用于每个特征都是非负的数据(正负号实际上是任意的). 1.将NMF应用于模拟数据 应用NMF时,我们必须保证数据是正的 如图 两个分量的NMF:分量指向边界,所有的数据点都可以写成这两个分量的正数组合. 一个分量的NMF:分量指向平均值,指向这里可以对数据…
著名的科学杂志<Nature>于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果.该文提出了一种新的矩阵分解思想――非负矩阵分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法.该论文的发表迅速引起了各个领域中的科学研究人员的重视:一方面,科学研究中的很多大规模数据的分析方法需要通过矩阵形式进行有效处理,而NMF思想则为人类处理大规模数据提供了一种新的途径…
作者:桂. 时间:2017-04-14   06:22:26 链接:http://www.cnblogs.com/xingshansi/p/6685811.html 声明:欢迎被转载,不过记得注明出处哦~ 前言 之前梳理了一下非负矩阵分解(Nonnegative matrix factorization, NMF),主要有: 1)准则函数及KL散度 2)NMF算法推导与实现 3)拉格朗日乘子法求解NMF(将含限定NMF的求解 一般化) 谱聚类可以参考之前的文章: 1)拉普拉斯矩阵(Laplace…
作者:桂. 时间:2017-04-06  12:29:26 链接:http://www.cnblogs.com/xingshansi/p/6672908.html 声明:欢迎被转载,不过记得注明出处哦~ 前言 之前在梳理最小二乘的时候,矩阵方程有一类可以利用非负矩阵分解(Non-negative matrix factorization, NMF)的方法求解,经常见到别人提起这个算法,打算对此梳理一下.优化问题求解,最基本的是问题描述与准则函数的定义,紧接着才涉及准则函数的求解问题,本文为NMF…
  0x00 环境准备 QYKCMS官网:http://www.yunucms.com 网站源码版本:YUNUCMSv1.0.6 程序源码下载:http://www.yunucms.com/Download/index.html 测试网站首页: 0x01 代码分析 1.漏洞文件位置:/app/admin/controller/System.php   第8-24行: public function basic() { $coffile = CONF_PATH.DS.'extra'.DS.'sys…
  0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www.damicms.com/downes/dami.rar 测试网站首页: 0x01 代码分析 1.漏洞文件位置1:/Admin/Lib/Action/TplAction.class.php  第118-135行中: public function del() $id = dami_url_repal…
  0x00 环境准备 OTCMS官网:http://otcms.com 网站源码版本:网钛CMS PHP版 V2.83 [更新于2017.12.31] 程序源码下载:http://d.otcms.com/php/OTCMS_PHP_V2.83.rar 测试网站首页: 0x01 代码分析 1.漏洞文件地址:/admin/sysCheckFile_deal.php  第523--540行: function SqlDeal(){ global $DB,$skin,$mudi,$menuFileID…
  0x00 环境准备 大米CMS官网:http://www.damicms.com 网站源码版本:大米CMS_V5.5.3试用版(更新时间:2017-04-15) 程序源码下载:http://www.damicms.com/downes/dami.rar 测试网站首页: 0x01 代码分析 1.漏洞文件位置:/Admin/Lib/Action/ConfigAction.class.php 第213-225行: $config_file = "./Public/Config/config.ini…