单细胞系列教程:聚类流程(六)

1. 学习目标

描述质量控制步骤后scRNA-seq分析的工作流程(聚类)。

现在有了高质量的细胞,可以继续工作流程。最终,希望对细胞进行聚类并识别不同的潜在细胞类型,但是在那之前需要完成几个步骤。下面的工作流程示意图中的绿色框对应于QC 后采取的步骤,共同构成了聚类工作流程。

2. 聚类流程

对于具有信息性的事物,它需要表现出变化,但并非所有变化都是信息性的。聚类分析的目的是保留数据集中应该定义的细胞类型的主要变异来源,同时消减由于无意义的变异来源(测序深度、细胞周期差异、线粒体表达、批次效应等)引起的变异。然后,为了确定存在的细胞类型,将使用特异的基因进行聚类分析,以定义数据集的主要来源。

要识别clusters,将执行以下步骤:

2.1. 变异溯源

  • 探索unwanted variation的来源

工作流程的第一步是查看数据是否包含任何不需要的变异。在scRNA-seq数据中评估的最常见的生物学效应是细胞周期对转录组的影响。另一种已知的生物学效应是线粒体基因表达,它被解释为细胞应激的一种迹象。工作流程的这一步涉及探索数据以确定想要回归的协变量。

2.2. 回归

  • 归一化和回归unwanted variation来源

Seurat最近推出了一种名为 sctransform的新方法,该方法对 scRNA-seq数据执行多个处理步骤。需要标准化以缩放原始计数数据以获得细胞之间正确的相对基因表达丰度。sctransform函数实现了数据的高级归一化和方差稳定。 sctransform函数还回归了数据中不需要的变化的来源。在上一步中,已经确定了这些可变性来源,在这里指定了这些协变量是什么。

2.3. 整合

  • 整合(可选)

通常使用 scRNA-seq,会处理对应于不同样本组、多个实验或不同模式的多个样本。如果想最终比较组之间的细胞类型表达,建议整合数据。整合是一种强大的方法,它使用这些最大变化的共享源来识别跨条件或数据集的共享子群。在Seurat中执行整合涉及几个步骤。完成后,使用可视化方法来确保良好的整合,然后再对单元进行聚类。

2.4. 细胞聚类

  • 细胞聚类

通过基于其基因表达谱的相似性对细胞进行分组来获得细胞簇。表达轮廓相似性是通过距离度量来确定的,它通常以降维表示作为输入。Seurat 根据从整合的最多变基因的表达中获得的 PCA分数将细胞分配到簇中。

2.5. 质量评估

  • 聚类质量评估

数据中确定的clusters代表可能属于相似细胞类型的细胞组。在确认一组成员单元格的单元格类型之前,需要执行以下步骤:

  • 检查clusters是否不受无意义变异来源的影响。
  • 检查主要的主成分是否在驱动不同的clusters
  • 通过查看clusters中已知标记的表达式来探索细胞类型身份。
本文转载于网络 如有侵权请联系删除

相关文章

  • 如何基于Security实现OIDC单点登录?

    一、说明本文主要是给大家介绍OIDC的核心概念以及如何通过对SpringSecurity的授权码模式进行扩展来实现OIDC的单点登录。OIDC是OpenIDConnect的简称,OIDC=(Identity,Authentication)+OAuth2.0。它在OAuth2上构建了一个身份层,是一个基于OAuth2协议的身份认证标准协议。我们都知道OAuth2是一个授权协议,它无法提供完善的身份认证功能,OIDC使用OAuth2的授权服务器来为第三方客户端提供用户的身份认证,并把对应的身份认证信息传递给客户端,且完全兼容OAuth2。「PS」:理解OIDC的前提是需要理解OAuth2,如果对OAuth2的单点登录的原理和流程还不太了解的可以看我之前的文章《SpringSecurity基于Oauth2的SSO单点登录怎样做?一个注解搞定》二、OIDC核心概念OAuth2提供了AccessToken来解决授权第三方客户端访问受保护资源的问题;OIDC在这个基础上提供了IDToken来解决第三方客户端标识用户身份认证的问题。OIDC的核心在于OAuth2的授权流程中,一并提供用户的身份认证信

  • 四十三、数据库如何定时备份

    一、解决方案定时备份数据库的步骤一般由三部:定时调度器:Windows定时计划、LinuxCrontab以及编程语言中的定时器等;数据库备份脚本:DOS批处理脚本、LinuxShell脚本等;执行导出语句。二、如何在Windows上实现定时备份计划任务是用于安排命令和程序在指定时间内运行或定期运行,它可以从计划表中添加和删除任务,按需启动和停止任务、显示和更改计划任务。首先我们先设定备份数据库的bat脚本,例如备份student表: 1.1.创建bat文件 1.2.在文件内编写备份脚本:mysqldump-hlocalhost-uroot-p000000student>d:\backup\student.sql复制创建计划任务,设定每一分钟执行一次备份:schtasks/create/scminute/mo1/tn/student备份/trd:\backup\student.bat复制三、如何在Linux上实现定时备份同样以备份student表为例:backuo_dir=/home/zhangsan/backup backup_filename="student-&#x

  • Stanford 机器学习练习 Part 2 Logistics Regression

    以下是我学习AndrewNgmachinelearning课程时logisticregression的相关代码,仅作为参考,因为是初学,暂时没办法做出总结。sigmoid.mfunctiong=sigmoid(z) %SIGMOIDComputesigmoidfunctoon %J=SIGMOID(z)computesthesigmoidofz. %Youneedtoreturnthefollowingvariablescorrectly g=zeros(size(z)); %======================YOURCODEHERE====================== %Instructions:Computethesigmoidofeachvalueofz(zcanbeamatrix, %vectororscalar). g=(1+e.^(-z)).^(-1); %============================================================= end复制 predict.mfunctionp=predict(theta,

  • 如何制备pbmc

    最近在学实验,和大家分享下。先从制备pbmc开始吧。pbmc外周血单个核细胞英文全称Peripheralbloodmononuclearcell,注意这里并非单指单核细胞全血由血浆和血细胞组成,我们的目标是拿到pbmc做后续实验。我们的原理是利用梯度密度离心法制备。血浆、pbmc和红细胞等的密度不同,加上淋巴细胞分离液,离心后全血分层,拿到上清液。其分离原理是根据血细胞的密度差异(红细胞和粒细胞密度为1.090g/mL左右;淋巴细胞和单核细胞密度为1.075~1.090g/mL;血小板为1.030~1.035g/mL),通过离心使一定密度的细胞按相应密度梯度分布,从而将淋巴细胞从人外周血或脐带血中分离出来。而我们使用的淋巴细胞分离液是1.077g/mL,介于红细胞和淋巴细胞之间。具体步骤如下:以5ml全血为例取5ml新鲜外周血(EDTA抗凝管)取两个离心管,注满下层(约3-4ml),上层分别加入2.5ml全血室温离心1000g*10min(最佳离心条件需要摸索)离心后血液分层,从上往下依次是血浆层、淋巴细胞层、淋巴细胞分离液层及红细胞层,我们要的是淋巴细胞层。用枪把淋巴细胞层及上层液吸

  • 『开发技巧』python :与-> 操作来给函数参数增加元信息

    0.引子写好了一个函数,然后想为这个函数的参数增加一些额外的信息,这样的话其他使用者就能清楚的知道这个函数应该怎么使用。1.方法使用函数参数注解是一个很好的办法,它能提示程序员应该怎样正确使用这个函数。例如,下面有一个被注解了的函数:defadd(x:int,y:int)->int: returnx+y复制python解释器不会对这些注解添加任何的语义。它们不会被类型检查,运行时跟没有加注解之前的效果也没有任何差距。然而,对于那些阅读源码的人来讲就很有帮助啦。第三方工具和框架可能会对这些注解添加语义。同时它们也会出现在文档中。>>>help(add) Helponfunctionaddinmodule__main__: add(x:int,y:int)->int >>>复制尽管你可以使用任意类型的对象给函数添加注解(例如数字,字符串,对象实例等等),不过通常来讲使用类或者字符串会比较好点。2.补充函数注解只存储在函数的__annotations__属性中。例如:>>>add.__annotations__ {'

  • LeetCode刷题DAY 13:字符串转换整数

    难度:中级关键词:自动机1题目描述本次给定一个字符串,按照一定规则将其中字符串转换为整数。规则叙述较为繁琐,因此借用一下官方解题中的一幅图来说明规则:2题解思路:自动机上面的图就是该题目可梳理出的自动机,这个题目的难点也是如何梳理出这个自动机状态转移图。梳理出后,按照状态转移把相关规则写入代码即可。下方代码是在看官方解题前写的,因此会跟上图略微有差异,官方代码可去LeetCode网站查看。classSolution: defmyAtoi(self,str:str)->int: str=str.strip() iflen(str)==0: return0 y='' ifstr[0].isdigit(): y=y+str[0] foriinrange(1,len(str)): ifstr[i].isdigit(): y=y+str[i] else: break elif(str[0]=='-'orstr[0]=='+')and1<len(str)andstr[1].isdigit(): y=y+str[0] forii

  • 分享一些vim插件

    本文作者:IMWeb袁飞翔原文出处:IMWeb社区未经同意,禁止转载 先是环境:在windows上用VMware安装了ubuntu,用ubuntu运行终端。可以用VMware文件共享、网络文件共享、nginx、ftp实现两个操作系统的文件共享linux主目录配置文件保存在github:https://github.com/feix760/yuan如果换一台电脑,我只需要gitclone--recursivemyGithubPath就可以拿到以前的配置文件vim的插件可以用Bundle来管理,只要在.vimrc用Plugin'XXX'指明需要的插件,随后用:PluginInstall复制自动安装新插件下面是我的.vimrc插件配置的部分,随后介绍各个插件的用途setnocompatible filetypeoff setrtp+=~/.vim/bundle/Vundle.vim callvundle#begin() Plugin'gmarik/Vundle.vim' Plugin'vim-scripts/L9' Plugin&#

  • linux下使用gtest框架进行c/c++测试-gtest环境搭建

    前言googletest(以下简称gtest)是谷歌的开源C++单元测试框架,用来做c/c++的单元测试比较方便。下面对于它在linux下的使用环境搭建做简单介绍。准备gtest框架在github网站下载gtest框架https://github.com/google/googletest解压后,进入googletest目录。目录下有以下内容 ├──build-aux ├──CHANGES ├──cmake ├──CMakeLists.txt ├──codegear ├──configure.ac ├──CONTRIBUTORS ├──docs ├──include ├──LICENSE ├──m4 ├──make ├──Makefile.am ├──msvc ├──README.md ├──samples ├──scripts ├──src ├──test └──xcode现在我们需要将其编译成.o文件 编译生成gtest.o文件:g++-ogtest.o-I./include-I./-c./src/gtest-all.cc 复制再生成.a静态库文件:ar-rvlibgtest.ag

  • LeetCode - 合并K个排序列表

    这题是LeetCode的第23题,同样是难度为困难的题目(写文章时才发现,当时毫无察觉),一月以前完成的这道题目,这题很容易让我想到合并两个排序列表。原题地址:https://leetcode-cn.com/problems/merge-k-sorted-lists/题目描述:合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出:1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-k-sorted-lists著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。解题思路: 这题特别容易让人想到合并两个排序列表,所以我也是基于这个思路去做的(再次基于递归): 设定递归的结束条件,当K等于0,1或者2时,这个时候结束递归新建一个数组,用于存放合并之后的列表,需要注意数组大小根据当前k的奇偶性去做是否+1的判断遍历当前需要合并的l

  • 如何快速的部署我的博客(Django)代码

    上篇文章介绍了我博客的一个架构,这里具体说下我是如何快速的通过git和fabric来持续部署我的博客的。先来说一个场景,我前几天上线了一个OSQA<http://qa.the5fire.com>_系统,为了方便以后来的网友在博客留言里提问时看到我有这样的一个系统,所以我决定在留言框上方加一句话,也就是现在在留言上方看到的那个文案:'技术问题还可以到the5fire技术问答上提问'。那怎么做呢,从开发到上线,过程很简单:先打开代码,找到文章正文页模板,在留言上方加上这句话。保存代码。gitadd-p;gitcommit;gitpush;fabre_deploy然后本地的代码就运行到线上了,是不是很简单?简单的背后一定是有复杂的支撑,不过我这小小的博客不用很复杂。下面开始阐述下背后的原理搭建git服务器不要被题目吓到,只是一个简单的git仓库,基于本地协议(文件系统)。在本地的话就是这样访问:gitclonefile:///tmp/project.git在服务器上的话就是:gitcloneroot@1.1.1.1:/tmp/project.git这其实就是远

  • 总结 | 云脑科技徐昊:AutoML 工程实践与大规模行业应用 | AI研习社104期大讲堂

    AI科技评论按:AutoML是今年的机器学习的热点,该技术潜力很大,在工程实践能够产生巨大的价值。现阶段,业界主要在探讨AutoML的难点与方向阶段,目前还没有一家推出系统性的方案。在工程实践上,AutoML还没有成为机器学习流程自动化、智能化的主要推动力。在实际应用中,针对大数据大模型的AutoML优化在research与engineering两方面都很缺乏。在本次公开课中,嘉宾分享了关于AutoML的算法和工程落地等实际问题。分享嘉宾:徐昊,云脑科技核心算法工程师,机器学习与高性能计算专家。在机器学习,自然语言处理,高性能分布式计算、图计算、随机优化等领域有着十余年研发经验。辛辛那提大学计算机工程博士,发表IEEE/ACM顶级论文20余篇,曾获第八届国际低能耗电子器件会议唯一最佳论文奖。曾任ANSYS软件首席工程师,主持了10亿级节点的分布式概率图计算系统的开发。 公开课回放地址: http://www.mooc.ai/course/607/learn?lessonid=2939#lesson/2939 分享主题:AutoML工程实践与大规模行业应用 分享提纲:AutoML业界动

  • 2017年数据可视化的七大趋势!

    随着科技的不断进步与新设备的不断涌现,数据可视化领域目前正处在飞速地发展之中。ProPublica的调查记者兼开发者LenaGroeger,以及金融时报的数据可视化记者JanePong在2017年全球深度报道大会上分享了他们对当前数据可视化趋势的一些看法。01玩转地图Groeger表示,目前的可视化技术水平已经远远超出了GoogleMaps,而且每天都会出现很多实验性的技术。“现在你可以用地图来讲故事。例如,蒂姆·华莱士制作的这张地图就根据每个洲的投票情况来展示美国的领土情况。”用于描述驾照需求变化的驾照统计地图有一些设计师正在尝试通过在地图中添加数据来说明不同区域的统计情况。这对于选举地图来说是一个非常流行技术,但这也适用于其他一些类型的统计。Groeger提到,在华盛顿邮报上曾刊登过一个用于说明新驾照需求的驾照统计地图,这是一个非常不错的例子。02定制数据Pong表示,尽管记者可以利用的开放数据越来越多,并且这对数据的可视化也是有利的,但这也同时意味着每个记者都在使用相同的数据。要让自己的报道与众不同,就必须要创建自己的数据集。创建自己的数据集的一种方法是将多个数据集组合在一起,但

  • [分享]php代码优化,思维扩展

    正文共:4696字预计阅读时间:12分钟benny最近看到一篇博客上关于php代码规划和优化的文章,感觉还不错,在这里分享给大家,原作者为博客为:http://tigerb.cn/2017/06/01/artisan/使用引用场景一:遍历一个数组获取新的数据结构也许你会这样写://申明一个新的数组,组装成你想要的数据 $tmp=[]; foreach($arras$k=>$v){ //取出你想要的数据 $tmp[$k]['youwant']=$v['youwant']; ... //一系列判断得到你想要的数据 if(...){ $tmp[$k]['youwantbyjudge']='TIGERB'; } ... } //最后得要你想要的数组$tmp ------------------------------------------------------- //也许你觉着上面的写法不是很好,那我们下面换种写法 foreach($arras$k=>$v){ //一系列判断得到你想要的数据 if(

  • 马斯克:我要造一条机械龙!

    新智元报道来源:Twitter【新智元导读】昨天,马斯克发推称,他要造半机械龙,引起粉丝哗然。目前,关于马斯克造龙还没有更多细节。OhbtwI’mbuildingacyborgdragon“噢,顺便一提,我正在打造一条半机械龙”马斯克昨天下午在他的Twitter随手发了这样一句话。半机械...龙?但这是马斯克,那个同时在造车、造火箭、挖隧道,并且以他的公司的名义卖过帽子、卖过喷火器的人。所以,造一条龙似乎也不是不可能。马斯克在SpaceX、特斯拉、隧道公司TheBoringCompany以及Neuralink同时进行着多个项目。虽然马斯克没有提供有关半机械龙的任何其他信息,但这一条推文就足以让人们对这个消息感到兴奋。有人向他回复了“权利的游戏”相关的玩笑,说这个想法可怕的地方不是“龙”,而是“半机械”(cyborg),既然是“半机械”,那里面必须得有“活”的部分。这位亿万富翁是不是会把一只鸽子关进他的机器里,或者装上某个鸟类的部分活体?造一个机械龙这个想法听起来像科幻小说,而且只是在Twitter上随口一说。但马斯克之前也使用过这种宣传手法。他曾经在Twitter上宣布,将在迈出500

  • 如何让服务器从30台缩减到2台的:从Ruby迁移到Go语言

    我们开发第一版的IronWorker已经是3年前的事了,是用Ruby写的,API基于Rails开发。我们没用多久就发展成了相当大的规模,很快我们就触及到了Ruby程序的承载上限。长话短说,我们切换到了Go语言,请接着读下去,下面是事情如何一步步发展的。  最初的设计  首先,做一点背景介绍:我们开发的第一版IronWorker,起初叫做SimpleWorker(很不错的名称,不是吗?),用的是Ruby。我们过去是一个顾问公司,为其它公司开发应用,在当时有两个东西被炒得非常火:亚马逊的WebServices和RubyonRails。所以我们开发的应用都基于AWS的RubyonRails架构,并因此吸引了不少大客户。我们开发IronWorker的初衷是来源我们自身的需求。我们有不少做硬件设备的客户,他们会7×24小时不停的给我们发送数据,我需要收集这些数据,把它们整理成有用的信息。典型的做法就是让定时任务每天每小时的遍历这些数据。我们想到应该开发一个东西,能够处理所有用户的数据,而不必做一大批的定时任务为每个客户单独处理。于是我们开发了一个服务类应用,并在内部使用了一段时间,但后来我们认为

  • 3. 无转折不编程,滚雪球学 Python

    滚雪球学Python,目标就是让Python学起来之后,越滚越大。 已完成的文章 标题 链接 1.这才是Python学习的正确起手姿势,滚雪球学Python https://dream.blog.csdn.net/article/details/109586142 2.无门槛学会数据类型与输入、输出函数,滚雪球学Python https://dream.blog.csdn.net/article/details/109697047 三、无转折不编程 如果程序都是从上到下按照顺序执行,那程序会缺少很多的趣味与转折性,并且会导致程序的编写枯燥无味,针对这种情况,为了实现某些效果,需要代码实现转折,这种转折在程序中就是流程控制,从A可以到B,也可以到C。 在流程控制中,你将同步学到关系运算符与逻辑运算符。 本篇博客内容较少,因为下一篇要讲列表,那个知识点多,先学点简单的铺垫下。 3.1关系运算符 在Python中关系运算符其实就是比大小的概念,所以要学习的就是大于、小于、等于等内容。 具体关系运算符如下: 关系运算符 含义 > 大于 <

  • Thrift 源码学习一——源码结构

    Thrift客户端与服务端的交互图   源码结构 传输层TTransport: TTransport:客户端传输层抽象基础类,read、write、flush、close等方法 TSocket与TNonBlockingSocket:分别是基于BIO和NIO客户端传输类 TServerSocket与TNonBlockingServerSocket:分别是基于BIO和NIO服务端传输类 TZlibTransport: TSaslClientTransport与TSaslServerTransport:提供SSL校验 协议层Protocol: TBinaryProtocol:二进制流传输协议类,把各类型转换成byte数组,交给TTransport传输 TCompactProtocol:使用Variable-LengthQuantity(VLQ)编码对数据进行压缩(压缩方法二进制协议类,将Integer按ZigZag压缩) TTupleProtocol:继承自TCompactProtocol,Struct使用时更省空间 TJSONPro

  • 曲线

    昨天过完了“软件生日”日,在自己公众号上发过的文章转给一位圈友,觉得有趣, 今天打开微信平台,发现居然有10个分享,但是阅读量还是很低。 不过这也算有种提高,自己想做的事,毕竟要先达到吧。 不管别人怎么鄙视排斥,要自己做好自己吧。 本文来自博客园,作者:DATA_MONK,转载请注明原文链接:https://www.cnblogs.com/ukzq/p/16886386.html

  • 1.AppScan安装教程

    一.AppScan简介 AppScan是一款非常好用而且功能强大的web应用安全测试工具,可以实现自动化web应用的安全漏洞评估工作,能扫描和检测所有常见的web应用安全漏洞,进行安全漏洞的测试并提供可行的报告和建议,将检测到的问题一一罗列出来,还可以直接导出测试报告,以pdf的格式让我们更直观的了解测试结果的问题与建议,有想了解的铁子们可以跟着小郭往下走。 二.AppScan下载与安装 虽然说AppScan特别好用,但是作为一款商业软件,价格也是非常昂贵的,而且还需要购买证书,属实接受不了,所以我特地为友友们提供两种AB下载方式。 首先下载安装包,官网下载地址:http://download2.boulder.ibm.com...2-AppScan_Setup.exe(本链接为7.8中文版),下载安装包之后傻瓜式安装即可 1.点击安装包之后可以进行选择中英文,然后是安装虚库协议 2.勾选我接受。。。,然后下一步 3.默认安装到C盘建议安装到别的地方 4.加载安装 5.安装完成 注意: 方式A:如果兜里元子足的话我们可以进行购买证书服务器(不够买的话使用过程中会弹出“请输入您

  • 自动备份软件 —— Syncovery 7.98s Pro、Enterprise

    SynCovery自动备份软件原名SuperFlexible Synchronizer,是目前功能最为强大的实时自动备份工具,连FTP、WebDAV等全部支持!最近从V6开始改用比较好记、易懂的新名称 SynCovery了。功能与SuperFlexibleSynchronizer仍然完全相同。 功能介绍: 备份您的数据和同步个人电脑,Mac电脑,服务器,笔记本电脑和在线存储空间。您可以设置很多不同的工作,因为你需要运行它们手动或使用排程。 Syncovery与本地硬盘,网络驱动器和任何其他装载的卷。此外,它配备了支持FTP,SSH,HTTP,WebDAV的,亚马逊S3,和谷歌文档。您可以使用ZIP压缩和数据加密。 在Windows系统中,调度器就可以作为一个服务运行–无需用户登录。有强大的同步模式,包括标准复制,精确的镜像,和智能跟踪。 Syncovery设有一个精心设计的图形用户界面,使一个非常灵活的同步和备份工具。丰富的功能满足用户的所有要求,通常有,同时还易于使用。 下载地址: 官网:https://www.syncovery.com/ 主程序: 32bit:https://w

  • Linux下svn的安装与部署

        最近工作碰到一个问题,我和一个同伙负责开发一个管理系统,基于原来的代码上进行修改,每当他修改之后,我要再修改都要和他确定是不是最新的文件,才能进行修改。非常影响工作的效率,所以在网上找了关于svn的使用。下面开始svn的安装和部署,解决开发中代码的同步问题。     在Linux上安装很简单。     第一。先查看yum有没有被占用,被占用就kill掉,再进行yuminstall-ysubversion     [root@localhost~]#psaux|grepyum    root     2293 0.0 0.0103252  836pts/0   S+  21:18  0:00grepyum    [2]+ Killed               &

相关推荐

推荐阅读