00:01
好啊,时间差不多了。我们来上我们的这个第二课啊,第2课昨天呢,给大家讲了这个单细胞联合突变的一个分析内容啊,如何获得单细胞突变的一个矩阵啊,其中呢,有一个小小的尾巴没有给大家说啊,就是说这个BIM文件不知道大家看过没啊。这个文件啊。这个BI文件啊,大家如果从这个,哎,大家如果自己测序跟公司要,哎,公司一般会给的,但是这个BI文件非常的大,你看普通的一个BI文件呢。啊,几十G是正常的啊,凹非常的大。所以在交付的时候啊,公司一般默认不交付这个文件,而且在下游分析的时候啊,一般用不到这个BI文件。单用文件在后续分析的时候只有2个用途,就是大现在啊,以后可能还会有更多的用途。
01:00
哪两个用途呢?第一个就是前,呃,昨天提到的那个靠突变矩阵,单细胞突变矩阵,另外一个呢,就是今天要提到的这个。哎,数据分析啊。大家来看看这个BM文件的一个格式啊,它每一列啊,代表了一个固定的信息,哎,首先这个信息是它的一个一路密呢测序仪,它自带的一个机器上的识别码。哎,华大,呃,当然现在可能有的人测序用的华纳这个,呃,测序也会有一个测序码,这个测序码或是不一样的,还有一些其他的信息,包括这个。而且第2列是数值信息,第3列是染色体,第4列是位置。第4列是它的这一列是它的质量信息,哎,就是昨天提到的,如果它是255,哎相当于是个站位服务,表示这条睿智没有用啊,但是很多时候,比如说像这一,哎呀,说明测距质量非常的差。啊,质量值在0~60之间波动。啊。呃,0最差啊,0是这个比对到了多个位置,呃,两个位置,然后11~60之间是质量越来越高啊。
02:05
然后大家可以看一看这里面的比对的时候啊,大家会经常发现单细胞的比对并不是那种完完全全的,很多都不是那种,呃,150都能脉上的。这个表示什么意思呢?就是说P1150。哎,有103个M就是脉词的意思啊,脉词上就是比对到账基因组47S就是loss啊,就是就是这47个碱基是没有比对上的啊,通过这种比对质量的一个衡量呢,来进行一个质量的一个评估啊。啊,后面还有一些其他的信息,比如说等号信息啊,呃,这种位置信息啊,等等等等,大家可以查一查,其中还有一个需要注意的信息是这个。第一个8扣的信息。呃,Label啊,第二个就是这个,呃,U mi label, 它都放在这儿了。哎,它都放在这儿了啊,所以说大家如果有能力的话,可以把这个矩阵啊,拆分成依据单个细胞拆分成单独的办,就像昨天文献那样啊,是可以做到的啊。
03:07
好啦,那我们就来继续讲我们的这个第二课,关于velocity的一个分析了。呃,关于velocity呢,不知道大家之前有没有运用过啊,有没有运用过,呃,它其实也是在。单细胞基因表达矩阵的一个基础上产生了另外的矩阵,就是可变剪切矩阵,多个矩阵的联合分析呢,得到的一个呃,类似于轨迹分析的一个结果。这个呢,就是基因的一个简单的一个结构啊,大家可能应该都或多或少了解过,对于我们真核来讲,对于我们真核来讲啊,在呃,准备翻译起始阶段呢,启动值之前,哎,会有一个比较的诶5撇端,5撇前端曲叫做叫开放阅读空哎,然后RNA聚合酶会结合到前面的一个位置。
04:02
大家主要关注的是基因内部的一个结构,比如说哎,基因的外显子和内涵值,大家可以发现是交互存在的,并不是说一个,呃,基因转录之后呢,直接就可以,嗯,直接就可以翻译,中间会经历一个可变剪切的一个过程啊,大家可以看一下。呃,包括5撇呃帽子啊,5撇前端以及3撇末端等等,都有这样一个非编码区的结构啊,都是要通过可变剪切的方式把它给切掉,然后再形成成熟的这个MV共下游的,诶翻译成蛋白质。这是基因的结构,然后可变剪切呢,有很多种这个形式啊,对于我们单细胞来讲,我们单细胞主要考虑2号和3号这种形式,因为大家做单细胞大部分都是3撇数据或者5撇数据,那么在可变剪切的时候呢,主要就是进行这个黄色物呃5撇,5撇前端的一个部,一些序列的剪切,以及3撇末端后续呃序列的一个剪切啊。
05:05
啊,但是在其他的领域,比如说在这个外迁制领域,它会考虑外迁制缺失,呃,外迁制缺失是什么意思呢?就是切这个内含值和这个内涵值的时候啊,本来一个第一个氯块和第二个绿块应该连起来的。啊,结果因为调控的失误,把这个绿块和两个周围的呃,粉色的这块整体给切掉了,导致了这个外显子缺失啊,这个在外显子以及基因疾病上会有很大的应用啊。还有这种互斥外显子和内含值包含的情况啊,互斥外显子就是说有1就不能有3啊,这种情况内含子包含就是可能这有4个内涵子,其中呃,3个都切掉了,有一个没切掉啊,这种情况也属于一种,哎呀。呃,细胞调控的一些,呃,细胞调控上的一些问题啊,但是对于我们单细胞来讲。我们主要看的就是5撇简介和3撇简介啊。然后右边是一个示意图,大家可以看一下,哎,包括这个外显子跳跃,本来中间应该有一个外弦子的,把它直接直接可以跳掉了啊。
06:08
然后5P哎,3片,包括这个外显子互斥,就是只能只能有一个,只能保留一个,以及保留了内含子区等等啊,这是对可变剪切一个简单的认知啊。呃,我们的这个包括人啊,在真核生物中,这个MRNA成熟当然经历了加工过程,经历了无片加末,诶,剪切和三撇,这个末端包括加poly AV, 这也是三撇捕获的一个原理,单细胞,呃,捕获这个u mi的一个原理。我们在识别的过程中啊,有剪切和未剪切,这样的话,成熟的一个mna是没有这个可变剪切的呃区域的,在整个的氧呃变化的过程中呢,会把这些内含子啊,不需要的区域啊,慢慢用可变剪切的方式把它给切掉。通过这种方式呢,就会形成有些m mrna是成熟的,哎,有些ma还未成熟,通过这种成熟和未成熟来计算,哎,细胞内部这个基因诶是怎样一种状态,它是成熟了还是未未成熟,如果说未成熟的居多,那说明它的演化关系是在指向成熟,如果说是成熟的居多,那说明上游的调控这些基因啊,表达量开始下降,这个时候呢,就根据它未成成熟和未成熟。
07:26
形成了一个简洁动力学的一个动力动态模型。从这个动态模型中呢,就可以推断,哎,剪切RNA的变化,也就是RNA速度啊,或者叫速率。哎,这个速率呢,公式大概就是这样的啊,这个大家了解一下即可,不需要太啊不需要啊,当然有数学专业的可以感兴趣的可以多研究一下啊。呃,在讲这个之前呢,我们先简单回顾一下之前讲单细胞轨迹分析的一些内容。呃,在单细胞轨迹分析啊,在我看来大概分为两类。
08:01
啊,一类就是可变剪切这一类的轨迹分析,另一类就是其他,包括大家经常跑的什么MONCO2啊,MONICCO3啊,U RD sling suitit等各个各样各种各样的吧。但是大家要注意一个很,嗯,就是一个比较。怎么说呢,比较一个明显的区别,什么区别呢?就是其他的那些分析方法,包括MONLE2,包括MOLE3,都针对的是单一矩阵。就是基因八库的矩阵,大家拿到这个基因巴库的矩阵之后,跑到mon尼CO2重新降维,诶成为树形结构,然后进行轨迹推断,对吧。它只是针对单一矩阵,昨天的课程上已经提到过了,单一矩阵的信息啊,具有很大的局限性,所以在这个基础之上,具有一些人说,哎,我们不能仅针对单一矩阵。哎,于是才开发了一个RNA速率的这个方法,通过这个可变剪切,也就是从这个读取的位置上进行一个分析。再配合。
09:02
再配合这个。哎,基因表达的一个情况,两种信息加起来的话,哎,它的推断结果就非常的准确了啊。呃,简单再聊一下之前的那些软件呢,我个人认为啊,呃,有3个共同点。呃,谈不上是缺点,也不是谈不上优点,反正是特点,第一个呢,就是针对单一矩阵。第二个呢,就是这些细胞类这些分析软件啊。都需要大家先把细胞定义给呃,就是做好细胞定义。啊,我当然我这里针对的是大家认真做项目啊,啊需要做先做好细胞定义之后再进行轨迹的一个分析啊,当然如果大家自己玩儿的话,拿了个数据自己玩儿,当然都可以跑出来结果,但是没有任何社会学意义啊。因为在做细胞定义的时候,我们需要把这个具有分化关系的细胞类型给它抽出来。啊,比如说大家做一个组织块,无论是免疫细胞还是。
10:00
哎,上皮细胞组织细胞类吧,免疫类和细胞啊,组织类的细胞类型通常是没有任何发育关系的啊。所以说但是呢,这些软件是无法识别的,这个需要我们人工来识别。哎,所以说呢,通过识别细胞类型,把免疫细胞诶,它有分化关系的分出来,T细胞去分化,B细胞去诶分化,这样的话才能通过这些MON2啊等等的软件分析出一个相对合理的结果。这是它第二个特点,第三个特点就是都需要人为指定A细胞类型发育的起点。包括MONLE2 monle2虽然可以人为的,呃,虽然可以自动的识别一个起点,但那个起点往往都是错误的啊,往往都是错误的,而且啊,不知道大家看文献看得多了之后,有没有一种感觉啊,现在用mon妮考2或者mon妮考3等等这些软件只能推断简单的发育过程,就是一个分支,不能再多了,多了之后呢,就会产生混乱。而且大家不知道受有没有受到这个公司的影响啊,公司在做threat进行降维剧烈之后呢。
11:04
诶,他把这个G为剧烈的结果,哎,套用到这个MON2里面了,就是剧烈就是说细胞类型是用threat识别的,诶MON2在这个threatread的基础之上呢,进行轨迹的一个推断,往往推断出来啊,那个轨迹都是不能用的。呃,一种细胞类型,分散在各个地方,甚至前,呃,开始端和末端都有,甚至有的轨迹分析分析它都中间都断掉了。哎,往往都是因为软件嫁接以及人工识别前期处理不合适导致的啊,所以说这些软件呢,大家做项目的时候还需要,哎,非常小心啊。嗯,但是一旦涉及到这个可变,呃,就是数理的时候呢,啊,它由于联合了多种信息。哎,就是提到的呃基因表达信息以及呃可变解析信息这两解信,呃这两种信息结合起来之后呢,大家就可以发现它其实在。
12:01
这个呃,数理的时候呢,一方面是不需要指定,诶是呃,不需要大家指定细胞类型的,因为在u map图上,不同细胞类型分的很开,数率是不会连起来的,哎,就会导致这样一个相对准确的结果啊。因为多组学的原因,所以就会哎,准确度相比于之前只针对单一矩阵的准确度要高,知道吧,当然了,可变剪切有各种各样的模型。以前有R版本的速率,现在有Python版本的速率,像Python版本在R版本的基础上演化了多种模型,如果大家之前呃看过我之前呃,去年讲过一个cvlo的课程的话,应该都明白scvlo有三种模型。哪三种模型呢?一种模型就是稳态模型,稳态模型是基于这几个假设。就是基因之间相互剪切是独立的,我们不存在调控关系。第二个就是动力学,就是基因的动力学已经达到平衡了,也就是说细胞处于一个稳态。呃,第三种是速率是恒定的,可变减轻每个基因的速率是恒定的。当然这种假设其实是有问题的。
13:04
嗯。包括第4点,所有基因都有一个共同的剪切速率,这是稳态模型的一个呃假设,包括savlo他自己都说了,这种假设存在一定的缺陷。呃,稳态模型呢,其实不知道大家在公司上是不是,呃让他做数据分析,是不是他用的这个模型啊,大家如果呃让公司做的话,可以问一下。呃,包括软件自身,Icvlo自己自带的自身啊,他都认为稳态模型其实是不合理的。他更多的希望大家用这种动态模型。哎,动态模型,动态模型也就是em模型,就是说这个模型啊,啊不再假设是基因有哎共同的简介速率,哎,这个更符合生物学认知啊啊第二个呢,就是说细胞假,呃这个基因简介啊,不再是达到这种稳态模型,也可能是非稳态,它正在就过渡状态,这种就像大家做轨迹分析有一些过度肽细胞一样啊。
14:05
嗯,接下来呢,再往前发展,一直发展到最近吧,嗯,又有了深度学习模型,哎,它是基于安徽速率来生成一个深度学习模型,就类似于大家呃经常听的AI,就是说很多时候啊,对数据的处理,哎,AIAI这种人工智能要上成。这个模型啊,首先要把这个细胞和基因之间的共享信息进行一个整合,整合之后计算其中的特征,这种计算其中的特征之后呢,然后来推断,哎,动力学的一个进展和这个潜在的发育时间等等。这个时候呢,要对它进行一个简单的一个呃,内部训练。大家都知道大模型都是要内部训练的,训练之后呢,呃,就会拿到一个呃,推断出一个结果,这个结果呢,是否合理,还需要人为再看一下。所以说在可变剪切这个呃分析,呃分析的时候呢,一方面。呃,通常不需要大家做细胞定义,但是最好做细胞定义,因为毕竟呃,它发育的过程是什么细胞发育成什么细胞,哎,这个是要知道的,呃,可变剪切呢,还有一个就是大家要注意的就是可变剪切在未连接的地方。
15:14
啊,你像MONCO2啊,T细胞和免疫,呃,组织细胞可能在u map图上分开在很远的位置,但是你放到一起,它还是能离合出轨迹的。但是从这个RV数理来讲,不同的细胞类型,由于二维空间离得很远,是不会产生这种诶呃,轨迹分析上的一个联系的。这个明白吧。然后呢,这个就是可变剪切的一个简单的一个示意图啊,示意图大家可以看一下。呃,首先呢,大家如果拿到这个BA文,呃BA文件生成这个可编剪切,这个矩阵有三个矩阵,一个是呃,S splessed, 呃s spless性地阵,就是已经剪切好的,还有一个未剪切的矩阵,另外一个呢,还有呃啊s spplaing矩阵,就是剪切好的矩阵和uns spplaing的,还有未剪切的矩阵,还有一个矩阵呢,是ambi ambiguous, 就是那个模棱两可的矩阵,就是这个剪切是否它软件识别不了了,这种的第三个矩阵通常是不用的,我们主要用这个剪切和未剪切的一个矩阵,剪切和未剪切的矩阵呢,就会存在后面两种情况。
16:19
啊,一种是他,哎。风,呃,这个减这个未剪切的比率高于剪切的比率,哎,啊还有一种是什呢,剪切的比率诶,低于低于这个未剪切的比率等等等等,在这个发育的关系过程中呢,就会体现出这个细胞的一个成熟的一个状态,尤其是基因啊,基因的成熟的一个状态。这里面我给大家总结了一句话,就是未剪切的RNA风度与剪切的R风度相关性具有先导性嘛,肯定是未剪切先产生,然后通过剪切之后呢,形成成熟的mna,从而推断细胞的分化方向。这是一个简单的示意图啊,大家可以看一下,哎,通过这个剪切未剪切矩阵的一个,呃,时间的流向,哎,从这个未成熟慢慢的过渡到成熟这样一个这样的一个关系。
17:10
这样的一个关系,哎,通过形成这样一个矩阵,形成我们这个剪切未剪切的一个矩阵,这个矩阵和表达矩阵联合起来进行分析,哎,拿到我们可比就是velocity那个,嗯,分析的一个结果。啊,接下来我们就要讲这个最新版的一个维劳斯ity分析方法了,啊,这个方法其实非常的一个重要,重要在什么程度呢?因为它整合了多种来源信息。S rank two, 这个是,呃,这个是这个六月份吧,6月10几号发布的一个文章,大家可以看到他用到了很多方法的一个整合啊,我们来看一下这个。啊,简单的一个教程,这个教程啊,大家要会看啊,要会看,我发现很多拿到教程也不会看啊,首先呢,我们来看它的一个整体的思路框架,就和我PPT展示的一样。
18:03
这个kel是什么呢?Kernel啊,其实是嗯呃,直译过来是和函数。核函数啊,这是在这个,呃,生性领域以及机器学习领域的一个。啊说法其实大家呃可以把它理解为核心程序。就是说核心程序是指这些。明白吧?这是核心程序,呃,其中呢,核心程序大家可以看一下,有包括RNA维斯体。哎,包括这个相似性,这个相似性就是大家那个基因表达矩阵得来的这个细胞,那个KNN聚类uf聚类图,相似的细胞聚在A临近的位置,不相似的细胞,哎放在很远的位置,大家可以看一下,首先它用了RV维劳斯的这个就是说剪切可变剪切这样一个矩阵信息。另外一个呢。就是它的一个这个基因相似度的,就是基因相似度的u map二维降维图那个它的算临近的那个距离的一个信息,第三个就是拟实信息,这个拟时信息哪来的呢。
19:06
就是这个软件自带呃自己算出来的,类似于mon尼CO2算出来一个轨迹,分析那轨迹的那个时间点,包括这个settle trace settle tras这个软件相对呃大家也应该呃听说过它是来推断细胞干性的。就是说这个细胞如果干性强是吧,干性强那说明。嗯,干性强,那说明什么?说明它这个,呃,分化的状态比较低,它更容易分化成其他细胞类型。嗯,塞trace它的一个原理呢,其实就是根据基因表达的一个种类的多少来进行判断,种类越多说明它呃干性越强啊。种类越少说明它越成熟,还有time series, 这个time series是什么意思呢?就是多样本时间点,比如说一周取了一个样,诶两周取了一个样,这个多个时间点取的这个样本,诶进行一个时间推断,最后一个呢,是代谢label保这种大家我觉得应该用的比较少。
20:03
代谢类包是什么?就是说细胞如果在,呃大量的分化,就是说在分,这个很分化比较这个叫什么大量分化的这样一个时间点吧,啊,它需要大量的这个代谢的物质,比如它形成核膜,形成这个细胞核,各种各样的一个物质,所以它代,所以它代谢就比较强,当然一个成熟的细胞,它如果维持自己细胞的稳态,它的代谢水平就会相对低一点。其中呢,呃,其中呢,大家在真正分析这个轨迹分析的时候呢,一般用到velocity,诶similarity就是这个相似相似矩阵等等前两个后几个呢,一般都不会,一般都用的比较少啊用的比较少,大家可以看到通过这种矩阵的一个多个矩,多种信息来源的一个矩阵分析。哎,形成这种转换矩阵,大家可以看一下,一般到了现在啊,大家应该都明白了,现在分析啊,都是朝着多组学的一个方向来推进,大家信息都是多种数据啊,分析的结果都是多种信息来源的啊。
21:10
然后呢,通过这种呃计算转换矩阵,计算转换矩阵呢,呃矩阵呃矩阵之后呢,通过这个估计器啊,这个估计器也是直译过来的,其实就是对它进行下游的一个分析,来推断哎时间的起点终点,以及这个基因的表达一个动态。嗯,这是一个大的框架啊,大的框架大家明白就可以,其中科EL函数啊,并不是说科脑函数大家都要啊,大家都要啊,取其中的两两两个啊或者3个就可以了,个人倾向于velocity和similarity啊。至于后面的这些软件推断的时间点,还是针对单一矩阵这种的啊,从现在的角度来看,它的局限性还是比较大的啊,然后这是一个简单的一个呃介绍,然后每个好的方法呀,它都会形成一个很大的一个说明文档,就像现在这样形成一个很大的说明文档,供大家来学习,大家看的时候啊用点啊,要耐心点,它很多。
22:11
啊,不要看到一个就用它很多安装这部分大家自己安装一下就可以了,它主要是康达安装啊,这个推荐啊,但是这个地方,呃,这个地方又有一些问题,就和昨天讲那个c s NP light一样,哎,大家看完之后对它的参数进入一个深度的理解,才再开始进行分析啊首先呢,它这个推优跑就是说它的一个。呃,分析教程它分了好几类,其中这个general就是普通的一个教程,这个普通的教程什么意思呢?就相当于,呃,让大家玩儿的知道吧,就相当于高考数学上那道例题,让大家认识一下,真正分析的时候其实是不能这么做的啊,这个就相当于大家入门级的一个教程,哎,让大家玩一玩明白吧,然后大家看到这个教程之后呢,简单的看一看,哎,包括前面的一个数据处理,包括它自带了一个数据啊,呃,有一些,当然它这里面用到了这个Pluto。
23:09
啊,这个也是一个国际分析的软件,也是针对单一矩阵,它会形成每个时间点的一个,每个呃,每个细胞的时间点,通过来推断形成这样一个结果。啊,Work with kernels kernel就是要进行核心程序的一个判定了,啊,进行哎,计算转换矩阵。计算这个。呃,计算转换矩阵,计算这个多多的就是多个可能多个核心程序,像这里面它用到了一个时间点程序,哎,这是这个普lual这个软件带来的,嗯,还有一个用到的就是这个连接的connectivity啊,就是单细胞表达矩阵的相似性的一个连接矩阵,两种矩阵呢,结合起来来计算它的一个。这个矩阵就是转换矩阵,就是基因表达,哎,连续性变化的这样一个矩阵,其中呢,大家要看到它在结合这个时候呢。
24:03
PK和CK它的权重是不一样的,也就是说时间点的权重和就是它模拟计算出来的时间点权重和它的这个基因表达相似性的一个权重进行了一个平衡。进行了一个平衡。哎,PK我们看一下CK呢,就是说连接矩阵,就是说表达矩阵的相似性,诶进行了一个,呃,取权重是0.2,但是轨迹分析的矩阵就是它时间点打分的,通过算法打出来那个细胞属于哪个时间点的那个分数的那个矩阵,哎,它的权重是0.8,也就是说从轨迹推断的角度来看轨迹的分数,哎,它的权重适当的高一点,连接性的矩阵适当的低一点,这是软件自带的一个算法,当然这个值啊,它只是给大家一个示例啊,大家如果认识的更深的话,其实这个值也应该进行一定的调整啊。然后接下来呢,就是进行一个估计器分析,估计器分析就是一些呃下游的分析了,包括推断呃,哪个是时间的起点,哪个是时间的终点等等等等,然后再计算一下转换矩阵,包括一些可视化的一个方法,最后呢,哎,找到一些跟轨距相关的一些基因。
25:17
吸音,然后进行可视化。这就是整体的一个流程,这个流程呢,是在流程大家要明白啊,这个general呢,就是让大家练手的啊。真正的情况呢,它放在了后面了,你像核心程序。啊,有4个,其中大,其中包括velocity,包括你是包是包括settle,包括这个,呃,时间点,时间,每一个核心程序适用的场景都不同,比如说韦劳斯里程序。哎,可变多矩阵,多矩阵的一个联合分析,它这里面就提到了一个什么。还提到了它主要运用到的是这个。正常的一个像sc vow, 它嫁接的是scvow的一个分析啊,大家可以看一下这个图呢,Szvlo也有啊。
26:03
呃,分析的就是基础核函数,就是核心程序,是嫁接的SSAV,通过这种转换的方式呢,计算它的一个细胞的分化方向。哎,最终得到这种,哎,可别这个留下这个叫那个啊速率图啊速率图。其他的还有一些核心程序,像这个程序。哎,就是通过这种基因表达矩阵,通过这个伪维逆时的一个打分,看看谁先成熟,谁后成熟,针对单一矩阵进行一个成熟分析的时候,哎,进行一个。大味儿。然后呢,它在运用这个,其实这个和函数啊,哎,大家可以就像之前讲到的,可以用两到三个和函数,和函数在相互嫁接的时候呢,需要选择一个权重,你像这个地方,它在进行轨迹分析的时候呢。也嫁接了这个。嗯,Scvlo这个方法通过判断剪切和未剪切的一个比率来判断细胞类型成熟的一个方向,通过这种方向,呃,通过这种方式呢,诶形成这种速率图,包括基因表达矩阵变,呃,矩阵的变化的一种。
27:13
呃,基因呃变化的一种这种。这种二维图吧,就是这个基因表达还是是这个趋向图啊,然后呢,接下来就是一些可视化的展示。接下来就是一些可视化的展示。这个核函数它的核心的地方就在于它要计算是呃细胞的时间点,以及它的一个转换矩阵。就是它的一个相似性矩阵,谁发育成谁啊,它嫁接了两种信息啊。啊,当然还有settle trace settle trace呢,它是一个。Set tra士它是一个呃,推断细胞干性的,这个大家要稍微看一下赛tra士的一个地方,它的一个基本假设是这样的。这个地方啊,它的基本假设这是这样的。
28:03
哎,根据这个传,呃,原始的这个,呃,Settle头trace的一个建议,用了这个基因表达的数量,每个细胞就是说基因表达数量作为一个原始的信号。作为它的分化状态。并且适用于后续的,呃,这个研究这个基础的假设,Behind this method, 就是说在这个方法的基础假设是这个哪有细胞。平均表达量是要远高于成熟细胞的,因为它染色体的一个调控更加的不稳定啊,也就是说。呃,干性强的,它调控不稳定表达的基因更多一点啊,它的分析方法和前面讲到的也是一样的,通过这种可变剪切的方式。哎,再结合它软件推断的一个轨迹,哎,软件推断的一个轨迹就是尾时间点,哎,然后计算它的整个轨迹啊,一样的啊。最终还有多时间点,多时间点这个在。多时间点,这个在不知道大家用的多不多啊,反正从肿瘤的情况来看,用的并不很多,就是说主要是做发育的,比如小鼠一周两周三周这种的,取他的样本进行一个多时间点的一个分析,分析完之后呢,进行一个轨迹推断,因为知道了是多时间点,所以就知道了起点,因为一周是肯定在前面,二周肯定在后面嘛,对吧,然后呢,就是它的一个简单的一个可视化分析方法了,这个大家回头看看,其实每一个和函数啊。
29:25
哎,大家用其中的一个就可以了,明白吧,推荐大家用这个维劳斯体,这块维捞斯体,毕竟它。呃,时间更准一点,这个是velocity结合基因表达相似性的一种,两个核函数的一个结合。这个呢,是维斯蒂结合,呃这个呃,不知道其他什么软件吧,反正其中一个软件它推断的这个。轨迹打分的一个结合,就是说一个是velo斯ity的和函数,一个是这个其他软件的,比如说MON2啊推断的这个。和函数两者进行一个,呃,结合分析出来,分析出来这个方法,第三个呢,就是3这个。
30:07
哎,可变剪切通过这种啊,当然这种力导向矩阵大家可以回头查一查,这种用的很少,力导向矩阵主要是力学上的。力学上的一个东西,包括这个settlele tras来推断干性,利用这个kel是这个kel是这个settlele tras就是它推断细胞干性的一个情况,来推断整个的一个发育轨迹啊。这是一个核心程序,这个核心程序啊,大家嗯,根据自己的实际情况进行一个判定啊,进行一个判定,从每个人的角度来看,看到的结果是不一样的,但是大多数人应该还是用这种矩阵啊,剪切为剪切。哎,计算这个平衡graph,哎,基因表达的一个矩阵啊。接下来是估计器,估计器呢就是下游分析。下游分析的内容主要是什么呢?第一个。
31:00
哎,要。当然以前啊,是人工来判断的,我们人工来判断哪个细胞类型应该是起点,哪个细胞类型应该是终点啊,现在呢,希望通过软件的方式帮我们算一下,所以说呢,他就提供了这样一种计算方法,呃,首先通过软件希望能计算出哎,起始位点和终止位点。然后呢,计算它的整个轨迹过程,以及driver基因,这个driver基因啊,直译过来是驱动基因,但是这个词啊,很容易引起歧义,很容易引起歧义啊啊,为什么呢?因为在外显子上也有这种驱动基因的说法啊,大家就直接叫它driver基因词就可以了,然后进行可视化和基因表达的一个趋向。这是整个的一个框架,大家了解了这个框架之后呢,就要适当的选择自己到底适合哪种方法了啊。这个就是当,呃,这个就是刚才讲到的可变剪切的一个矩阵,哎,它嫁接了sz vlo, 然后用这个velo斯体这个核函数来计算这个转换矩阵,基于这个velocity来计算这个转化矩阵,然后呢,结合connected no就是它的基因表达矩阵来估计这个基因表达这个相似性。
32:13
最后呢,进行可视化,并且地位嵌入啊,这是它的一个这个和函数所结合的两种方法。嗯,接下来还有转录组加预测分数,就是说刚才提到的一些根据转录组以及它的一个其他软件的预测的一个其呃,它轨迹的一个分数,这个分数代表了它认为时间关系,诶来进行一个下游的分析,当然还有settle trace, 这个刚才提到了settle trace啊settle trace, 它当然就是。呃,基本假设就是,哎,干细为干性强的细胞呢,表达更多的基因,因为它调控不稳定。还有最后一个是多时间点模式,这个多时间点模式呢,一般在发育过程中会用到啊,比如小鼠发育,在人的样本上很少能找到这种情况啊。
33:01
第二个,呃,第2个就是它的估计器的下游分析了,第一个要哎计算这个初始和成密道状态,就是说通过计算的方式,通过软件计算的方式来判断。哪个是初始状态,哪个是,哎,就是末端分化状态,通过这种转换矩阵的方式进行一个估计。这是他的一个估计的一个简单的一个事宜啊,就是说通过这种嗯。这种叫这个,呃,反正是一种细胞类型的一个状态microstates啊,这种状态来推断细胞类型在之间的一个发育分化关系啊,发育分化关系。简单的来讲就是说通过计算推断出,哎,这个地方是起点,这个是中间点,哎,另外是末端等等等等,就不需要人为再指定了。啊,它的推算方式当然和MONICCO2不同啊,MONICCO2那种算法原理和这个是不一样的啊,这个更加的因为结合了多组学,所以更加准确一点啊。
34:00
接下来呢,诶。接下来呢,就是这个基础的运用了,基础的运用当然就是这样了,计算转换矩阵,哎,然后进行下游的一个分析,分析这个基因变化的一个过程,基础的一个运用呢,就是用这种哎拟合的方式,拟合的方式呢就会产生。呃,基因表转换通过女和呢来计算这个连续性变化的一个基因的一个状态。这个是它的一个,呃,就是计算状态的一个,呃,示意图前几个呢,基本上它计算出来的前几个,这个micros啊,基本上都处于每个轨迹的一个端点处。后续的计算的states啊,基本上都处于这个中间状态,也就是说它通过这种呃,Micro states的一个计算了来推断。哎,哪个哪个属于,就是先把端点和起点先都识别出来,然后再通过这种转换矩阵的方式,就是translation matricx来推断哪个最可能是起点,哎,另外几个最可能是末末端。
35:06
哎,这个是简单的一个示意图啊,通过计算的话,哎,可以查阅到先识别这种末端区域,以及这个哎,它这个区域具有变化的一个端点,然后呢。计算点与点之间的一个,哎,其实分化关系,这个分化关系呢,是其他函数来的,比如说这个维斯ity啊,Settle tras啊等等等等,它会给一个时间,时间点的一个关系。啊,接下来是命运的决定,命运的决定的话就是一些哎其他的呢,比如说通过这种哎分析方法,有这了,有了这个分支之后呢,哎就会发现哎他朝着两个方向分化。啊,这就这都是一些简单的下构分析了,如果确定了轨迹分析之后呢,就可以对它进行,哎,基因轨迹的一个变化,A和B之间的一个差异,这个在MONICCO2上也是有这种类似分析的,哎,两个分化方向基因表达会有变化啊,有的高了,另外一个是低了等等,还有一些热土。
36:03
哎,包括这种。哎,轨迹趋向图等等等等啊。这个北塔其实就是它官方势力的一种,呃,分这个叫那个分支啊,它的一个关系啊。哎,接下来就是一些velocity的一个文献应用了,这个文献应用啊,相信大家应该都听过很多了,它其实更多的还是在表征这个,呃,轨迹发育的一个情况啊,轨迹发育的一个情况大家可以看一下。啊,基本上还是要想要推断细胞类型之间的一个发育关系,当然有的时候啊,文献它不止利用一种方法,有的时候会利一种多种方法,像这种就会利用这个MONCO3的这种方法,哎,相互结合起来进行一个国际的推断啊,不是用多主学的话,就用多方法,如果多方法的结果一致,那它可行度会更高一点啊,包括下游也是推断这个细胞演变,这个地方大就可以看到了。
37:00
啊,当然它这个细胞类型,它就是这个呢,就是时间点模型,哎,多个样本存在多个时间点,多个时间点呢,通过这种时间点模型来推断细胞类型的一个转化关系。嗯,这也是文献应用啊,文献应用推断这个细胞类型的一个分化方向啊,发育轨迹等等等等,这个地方大家要注意啊,它就运用到了这个,哎,多个软件的这种轨迹推断的一个方法,像RNA velocity, 哎,这是一种方法,这个地方呢。啊,应该是猫二,但是也有点像那个Python版本的那个pthon版本,另外也有个软件也可以推断这种塑形结构啊,反正它总体来讲,它用了两种方法来推断这个轨迹。包括大家在运用的时候啊,现在是多组学的时代,大家可以看到它在嘴端推断这个轨迹的时候呢,哎,轨迹就是时间点,细胞类型,Sample group sales state, 细胞状态,这个地方还有CVO。就是CNV在轨迹推断的时候也要进行可视化看一看诶,看看它CNV的变化是怎样的,是不是CV在轨迹分类中也会起到一定的这个作用啊,这个大家也要注意啊。
38:12
嗯,当然随着方法论的一个发展呢,更多的也是,哎呀,更多的现在啊多主学的发展,可能会把多多种信息纳入进来,现在这很多人啊,包括一些呃,算法上的一个推断呢,开始把这个RNA和A泰克,包括这个维劳斯里,就是三者的信息进行一个拟合,来推断它的轨迹啊,这样的话,在多组学的一个信息的呃加持下呢,它的一个准确性会进一步提升啊,它这个原理呢,其实和大家,呃,其实和这个。和前面的差不多,只不过它在基础之上加上了这个染色体开放的一个信息。当然,染色体开放越高。染色体开放越高,说明他要大量转入这个基因。对吧,转到这个基因之后呢,然后再借助可变减期的一个信息,看它可变剪切的速率的高低,大量开放加上可变剪切,就是说它未成熟的比较多,说明它这个基因呈现正数率,哎,它的大量的表较达哎,反之则呈现负数率,这个基因表较达的下降等等啊,调控它细胞的之间的一个调控,通过这种方式呢。
39:18
来判断这个细胞的速率。哎,下面是一些可视化的展示图了,哎,包括每个基因的它的一个剪辑收入的一个比率,包括它的一个分项啊,方向等等啊。好。这个呢,就是。这个呢,就是它的一个简单的一个原理呢,其实现在其实简单主要强调的就是要进行一个多信息联合的一个归集分析啊。好,我们休息5分钟吧,现在39了,我们45回来,我们来看我们的代码部分,好吧,我们休息5分钟啊,大家有什么问题可以把问题打在这个聊天框里啊。
44:18
有时候去掉一些看起来无关的class之后,剩下的class的vity就乱掉了,应该怎么解决呢?呃,这个乱应该只是指克拉斯的在聚类乱掉吧,如果它的克拉斯德的坐标啊,你没有变的话,就是说简单的去掉一个克拉斯的话,它的一个呃轨迹是不会和轨迹和原来是一样的啊。啊,就怕你是把那个啊,就怕是你把你把这个一些class去掉之后,自己又重新降为聚类了。哎,可能就会分开,这个时候维拉斯蒂就不准了啊。S sweat注释后的细胞亚群做细胞轨系会出现嗯,散乱的情况,是跟软件有关,指的是哪些软件的不匹配呢?这个主要是s sweat呀,比如说sweat和MORNING2的一个上下游关系。
45:05
嗯,S sweat呢,它会计算一些高变基因对吧。的计算高倍。第一个问题什么?就是说去掉一些无关的class的之后,剩下的class的维loity就乱掉了,怎么解决维loss斯ity它一般是不会乱的啊,乱掉了之后就是在于你,哎,把一些五官的class去掉之后呢,自己又重新。哎,降为剧烈了,如果你还保留原来的坐标的话,它的结果和原来是一样的。如果你重新降为聚类的话,它的一个临近的一个临近的一个细胞呢,发生了改变,哎,它就会重新计算了,这个时候就会和原来不同。呃,老师,呃,那个threat和像threat和Monica,他在这个。
46:01
哎,作为上下游关系的时候,SP它当然识别了一定的高边基因。进行了一个细胞注释等等,但是在mon尼CO2的时候呢,MONICCO2大家又进行了一个高变基的选择,这个基因选择一般是这个mon尼Co应该是1000个基因,首先高变基因数量就不一样,再加上其他的一些计算方法的不一样,哎,导致它形成一个信息的错配。而且mon妮卡2没有那种怎么说呢,没有那种矩阵矫正功能,一旦你是多样本进行啊,多样本进行一个轨迹分析的话,Mon妮卡2在处理这种情况下啊,效果一般都不太好啊。新的class得重新CV吧。啊,现在你重新降为聚类了,那当然就得重新了,因为它的它的细胞领域变化了啊。好了,我们在这个基础之上呢,我们来看看我们的代码部分啊。这里面强调一下这些核函数啊,大家一定要多了解velocity,哎,这是剪切,包括基因表达的一个相似性。
47:05
这个轨迹分析呢,呃,用mon尼ICA2MON尼,反正任何一个轨迹分析软件都可以settle tras呢提呃,提供这个细胞干性,包括多时间点以及代谢,通过这种多种信息的一个kel,就是核心程序的一个整合,来进行轨迹分析的一个推断,嗯,推断之后呢,识别它这个转换矩阵,这个转换矩阵就是分化潜力矩阵,看看哪个细胞,哎,它的分化潜力如何,它向哪个方向分化,最后呢,进行一个下游分析,就是估计器,估计器就是下游分析来推断它,哎,哪些点是时间的起点,哪些点是时间的终点,包括在整个轨迹发生的过程中,它基因表达的一个变化等等啊,这就是一个整体的一个流程啊。接下来我们来看我们的程序啊。首先呢,第一步我们首先要用这个BIM文件生成我们的velocity文件啊,是生成我们的路M文件。嗯,这个呢,其实这个大家装好之后呢,一般都会,呃,都可以看到它那个教程,装好之后呢。
48:12
把这个V的这个软件给装上之后呢,等一下啊。把这个velocity软件装好之后呢,就可以。看到他的一个,哎,不能干个help吗。这是一个类似于CS的一个程序,大家在运行的时候呢。这个软件怎么突然报错。装的时候呢,就会运行到那。那是这个环境。没有找到啊。啊,韦罗斯给他的一个命令啊,他的命令很简单啊。
49:02
大家随便一搜就能搜到啊。它的一个主要的一个过程呢,就是把我们的BIM文件生成我们的这个录文件。哪去了?哎,就是这个大家装上之后呢,其实它基本上就有这两个程序,一个就是。哎,我们的BIM指定我们的BIM之后呢,生成呃,以及它的这个基因表达的一个呃,就是那个注释信息。比如说像我这样的,像我这个地方写的。哎,Velocity.这个是就是我们的BM,这个呢,就是我们的基因注释信息,当然这个注释信息是HG38的啊,它会注释这种格式呢,类似于那种VCF格式,前面有一些呃,版本信息,这里面就是它的基因表达信息了,包括它的位置啊。
50:06
啊,基因名啊,基因啊什么事啊,包括基因ID啊等等各种ID等等。这是入式信息,通过这样的运行呢,就会生成我们的room文件。如果大家的计算机性能比较好的话啊,大概两三个小时就可以啊,有的就是计计算机性能可能慢一点。哎,时间就会,时间就会长一点。这个room需要标记重复吗?等一下。哎,聊天光。怎么避免啊,就是刚才提到的那个SP和MON2怎么避免这种情况是吗?啊,不太好避免啊,只能换软件啊,像mon尼考3它借助了threat那个U降维,结果它的轨迹推断呢,相对就会好一点。莫考2,如果你想非要用它来做轨迹分析的话,那只能是。
51:00
用它那个integrated,就是它那个CCA的那个矩阵,但是现在大家都用harmony了,所以CCA矩阵也没有,所以说在批次处理上啊,莫尼考2是它的弱势啊。呃,Sa trace辅助确认起点比较好,加上莫妮卡赛trace,它刚才提到了它的一个。哎,它的一个计算方式就是说基因表达的种类越多,他认为干性越强,对吧,这种的情况呢,对不对呢,其实是对的,但是往往大家啊,在那个分析肿瘤细胞或者单样本分析,就是都是一些成熟组织的时候,这个赛道确实并不太好用啊。并不太好用。这个bam文件需要标记重复吗?哎,不需要啊,不需要啊,不知道这个十成制是不是自动自动标记了这个BA文件,大家直接用时成生成的那个mapb就可以啊,然后就会生成这个。呃,我们的维老斯体啊,当然我这里面视例的数据比较小啊,真正的生成roomm大概就是这个下面这个100多兆,哎,这个是合理的啊。
52:05
然后呢,就是要进行一个脚本的封装了啊,脚本的封装的内容呢。哎,我不知道大家之前呃封装过没,包括去年讲课的时候,基本上也都是封装类的脚本,脚本封装呢,其实要实现呃几个功能的合并,首先前面呢,大家要养成一个好的习惯啊。用的什么程序,哎,时间点哎,谁写的,包括这个参考的哪个地方,像我就参考的这个cell rank to在这写上,然后呢。呃,有该加载什么包加载,然后这个地方有一个参数的设置,参数的设置呢,就是大家认为某一些参数啊,可能我需要调整。比如说单细胞聚类的参数,单细胞这个,呃,其他的一些参数,哎,我需要调整的时候呢,呃,就把这个参数写出来,可以外部指定。比如说这里面剧烈参数0.5,哎,我想改成0.3也可以啊。
53:01
还有一个就是要实现多功能的合并,比如说这个韦罗斯里,当然现在单样本分析的很少啊,基本上都是多样本,这个时候呢,这个脚本要具有这个能力,就是能识别这个单样本还是多样本分析,如果是单样本就进行单样本分析,如果是多样本。哎,就需要进行这个样本之间的一个合并,然后进行下游的分析,并且要具有这个信息转换的能力。比如说我用threat的降维距离,结果我希望用Python,在分析velocity的时候也希望用,呃,R版本的一个降维剧的结果就是要进行信息导入。同时呢,如果没有这个信息,也要有这个脚本,也要有自我分析的能力,比如说没有这个信息,那我就要自己进行一个将来聚类的一个处理啊。所以说这就是封装脚本的一个情况,在大家用服务器的时候,封装脚本是基本功啊。好了,我们来看看这部分。
54:05
啊,GTF也是10层提供的嘛,是就是大家下那个10层的那个参考基因组啊,它里面就自带的啊自带的。哎,我们把这些包都加载上啊。嗯,这些参数的意义呢,是什么呢?其实这些参数的意义在脚本内部,属于变量的意思,只是这个变量我们可以外部制定啊。简单的一个例子就是说。比如说啊。比如说这个脚本我已经封装好了,对吧。哎,我开启我的这个环境。嗯,我开启这个环境,我就开始写这个主脚本了,比如说run,就和昨天sell light sell light那种方式一样。哎,Python.
55:00
脚本。哎,这个时候开始配参数了。这个时候就开始配参数了啊,比如说他要录历史的参数,也就是说这是一个文件参数。哎,指定给他。类似的文件,这个要写全径啊。然后呢,奥特Di IR就是这个输出路径,诶给定他,比如说是这个路径给到他。然后呢,Sample哎,比如说我们这个就是test对吧。然后呢,有class的信息,如果有这个threat降维聚类那个B口这个文件信息呢,就写上,没有就不写了。然后呢,XY就是u map二维坐标信息,如果想用threat,就把这个参数写上啊,就是它聚类的一个精度。呃,这个精度呢,大家可以,呃,它默认0.5不写就是0.5啊,写上就是你的,比如说我写这个。呃,比如我写,呃,0.8。
56:00
嗯,比如我写0.8。保存之后呢?啊,直接投上去,Q sub还是no HUB都可以投到后台,直接跑就可以了,跑后台它就会自动形成我们想要的结果,啊,这就是封装脚本的一个用法。啊,当然封装这呃,当然这这是封装好的哈,大家封装的过程还是需要进行一个调试的啊,调试的过程中呢,这些其实就是内部的一个参数,这些参数呢,经过指定之后变成了这样一个变量。像录历史的读取的时候,还有一个封装脚本的一个好,呃内容呢,就是说大家如果看到一些好的内容,比如说好的配色呀。嗯,好的一个布局啊,包括画图的构象啊等等,如果看到好的话,也把这个封装进来,这样的话大家就会。哎,拿到一个相对完整的一个,就是相对好的一个结果,这在公司来讲是体现分析质量的一部分啊。呃,来自threat的话,哪一步结果可以作为这个class的输入啊,就是说你把那个呃,Threat那个写出呃,聚类结果写出来。
57:07
写出来,比如说第一列是bar code的,第二列是这个bar code的所属的哪个,呃,Class, 比如说12345或者细胞类型指定的时候,这个参数class的参数写上这个文件不仅就可以了啊。包括二维坐标的路径都一样的啊。呃,当然还有一些基础的一些简单的一个内容,比如说我们这个奥特D啊,如果不存在的话,就让它自动创建等等,这都是一些基础内容啊,大家在写脚本的时候要把它封装进来啊。然后就开始我们的主要的一个分析了啊,这里面我以一个简单的一个那简单的一个录取,呃,简单的一个文件给大家演示一下啊。这里面我们就有一个吧,一个这个文件吧。啊,如果用多个文件的话就会产生啊,多个文件的话就要产生数据合并,这个在就是这种交互式界面的时候啊,需要耗费非啊非常多的一个时间啊。
58:05
但是这里面有一个目合并的一个内容,这个会给大家说到啊。比如说我们读取我这个新生成的这个。大家可以看看啊,我28兆读取都有点时间啊,所以说很多分析还是要用这种大服务器投到后台分析的。这个大家可以看到了,这个时候大家可以看到这个矩阵啊,它会生成这样一个文件,它是an data格式的,大家可以看到包括了2500多个细胞,哎,38000多个基因。其中呢,有一些,哎。看信息啊。拍摄满满,看信息直接点就可以了,点wow你看他就会告诉你及。4S省呃,染色体呃,起始区域呃,这个终止区域,起始区域以及它属于正联还是复联等等,这是它基因的一个简单信息,这个lays啊,存放的是矩阵啊。
59:01
这个matrix就是我们的基因表达矩阵。Ambiguousous就是那个模棱两可的矩阵,一般不用它,因为它没有提供有效信息。Splaed和unplaed,这就是剪切和未剪切矩阵了,它的格式啊,其实和我们的表达矩阵是一样的。比如说我们看一下这个矩阵啊。Layers.这个SSPPL的,当然它也是一种吸收矩稀疏矩阵的一个方式啊,为了节省空间。哎,我们把它转化成传统矩阵,它也是内部也是数值啊,大家如果感兴趣的话,可以把这个数值啊写成那种data frame的一种方式,看看它内部到底写了什么。然后呢,哎,对,其中还有一个问题呢,就是这个问题啊。这个8扣的信息。大家可以看一下它的8扣的,不是我们传统意义上的那种8口的。不是我们传统意义上的吧哦,视例文件不太会,大家可以看看实例文件的读法就可以了啊。
60:02
这个8CODE的信息大家可以看一下,后面是我们的8CODE,正常来讲我们的bar code是这种,比如说他。嗯,杠一对吧,哎。还有一些公司呢,前面会写sample name.哎,刚好后面这个一系列的这个东西,这个为了和我们这个threat的结果或者其他分析的结果对应,我们需要把这个8个的信息进行转换。转换成我们,哎和前面信息对应的一种格式,呃,正常来讲呢,一般都是杠1-2的,第一个我们杠一,第二个我们杠二,对吧,我们这里面需要把它集中集中进行转换。哎,就是把它前面的信息剔除,哎,后面换成我们的杠1格式,这个时候呢,就换成了这种啊,哎,就是我们常见的这种8口的格式了啊。常见的这种8口的格式了。然后这里面呢,如果说我们是多个roomm文件,比如说哎,就像上面一样,有两个roomm文件,两个room文件呢,这个地方,哎,比如说第一个文件我们在前面整合的时候啊,第一个是杠1,第二个是杠2,我们把它排序写好之后呢,第二个文件我们在读取进来之后呢。
61:11
哎,我们要把它改成杠2,比如说这个是文件第二个文件的一个八口的,哎,我们需要把它这个地方改成杠2啊,杠2之后呢。循环读,循环读,然后形成一个room list的,就是说把它这个录整体的一个规划好之后呢,用这个函数把它所有的room文件给它合并起来。形成最终的呃,整合版的路。这个录这个整合的过程也是相对比较久的啊,比较久的,大家不要在一行一行本地跑,要需要投到后台啊形成的这个整合,这个录文件呢,也是比较大的,如果大家一个文一个文件。啊,100兆的话,如果5个文件就是500多600兆了啊。形成这个room文件之后呢,进行一个下列的分析就可以了,但是大大家要注意啊。这里面既包含了。
62:01
这里面既含包含了表达矩阵,也有剪切和未剪切矩阵啊。所以在下一游分析的时候一定要注意,如果啊。如果大家自自己带了cluster了。哎,这里面就直接会读取它的class的,不进行内部,不进行Python版本的分析,而是直接读取大家提供的信息,比如说大家提供了这个class的文件,这个class的文件的格式是什么呢?就是第一列是b code的。等会第二列是class,哎,直接就可以了,这个2列的信息是什么呢?比如说第一个是。8的是它杠1对吧,逗号啊,如果第二个可以写它的class的这个1 class的1也可以写它的细胞类型的T细胞都可以啊,这是文件,它读进来会把这个信息付给到我们的这个an data里面。当然如果我们没有这个信息呢,需要它内部进行计算的时候,就要用条件去判断。让他来进行一个判断。哎,生成我们想要的一个结果。
63:01
PC.哎,这个时候呢,我们的数据里面就会产生PC的一个结果啊诶。就会有这个XPC啊。如果是多样本的话,我们需要呃,这个harm姆尼处理啊,我们指定之后呢,它会自动判断是不是大于1,如果是大于1的话,就开始用harmony进行一个矫正了,PCA之后进行harmon尼矫正啊。矫正之后呢,进行一个neighbors lad等等啊。聚类结果,如果说我们没有这个,如果说我们不是多样本,就像我一样,只是用一个单样本进行演示的话。哎,这个程序它就不会运行,这是基础的条件判断啊,大家应该会啊。包括这个u map坐标也是一样的一个过程啊,如果我们用script的u map坐标给到他。这个读法呢大家可以,其实如果大家不知道参数该怎么写的时候,只要看看他怎么读的这个参数就可以了。像这个readid.csv,说明是CSV格式,也就是逗号分割的格式。
64:05
然后呢,Index=0,也就是说index是它的行名,行名就是我们的八库的第一列是UF1,第二列是UF2,这样的话,通过这种。哎,读取的方式就可以读到每个细胞的一个坐标信息。把它付给,哎,后面的内容呢,就是把它付给到我们的A态的这个。呃,Python版本的数据里面。如果我们没有啊,那你那也需要他进行一个简单的一个数据分析啊,这个时候他我们的这个脚本需要就是具有两种能力,一种就是他自己分析的能力,另外一种就是他。哎,添加信息的能力就是刚才我添加完了就没有不会再分析了啊。PPS, 当然这个过程啊,会比较慢一点啊。相当的慢啊。新开一个吧,我们新开一个,如果说这个节点慢,大家换一个节点啊,跟我一样换一个节点。
65:06
比如说它默认是前几呃一节点,我们换成26。分成26啊。加载啊,我们快速的过一下前面的过程。这个颜色呢,大家自己保留啊,它画出来的图因为颜色搭配比较好,所以会啊,所以它的图就相对啊,相对好看一点啊。哎,我们读取我们的第一个文件。来,我们简单的过一下啊。
66:01
驱虫。包括修改它的B口的名称。符合我们上下游的一个关系。还有就是要进行,如果没有提供额外的信息,哎,需要它内部进行一个处理。进行一个PC的判断,如果是多个文件的话,需要它自动进行一个识别,合并成canb的room,包括矩阵的一个harmony的一个取批次。如果说他用到了,如果说有坐标信息,我们直接付给他就可以,如果没有,我们需要他计算领域。呃,需要它,呃,自动计算u map坐标,包括它的一个剧烈结果,这个地方的作用就体现了啊。前面提到了revolution default是0.5啊,大家在指定的时候一定要根据自己的经验进行判断,大家如果在公司做的话,这个revolution大部分都是0.5。
67:00
然后呢,呃,添加额外的一些信息,如果说大家自带细胞类型信息,把它填进去,如果没有就把class的覆覆盖成细胞类型了啊。然后呢,就是一些,哎,结果了。大家可以看一下啊。这个地方呢,这个是画图画图函数,画图函数在这个保存的时候呢,Python的保存方法是这样的啊。0.5怎么来的,0.5是公认的啊,各个公司都有0.5,呃,也就是说在分大类的时候,0.5是可以的啊,这是个经验值啊,大家可以看一下其实这个软件。软件默认啊,这个是1。罗软件默认是12默认是0.8,但是公式一般都用0.5啊。接下来呢,就是一个哎画图了,画图的时候呢,大家要用这种方法。还有保存的一个方式啊,大家学一下,包括auto d, 我们需要指定这个变量,比如说我们指定成。
68:03
当前这个变量啊,当前。这个在画的时候呢,就会画出来,哎,我们想要这个结果啊。哎,这个就画好了。哎,SP on的比率。哎,这个结果呢,就是大家刚才看到那个结果了,明白了吧。20%吗?不知道。嗯,就是不太清楚的一些啊,拿到这样一个信息。大家可以看一下,其实我这个视例数据的样本啊,其实on sppled诶含量更多一点是吧,SSPPL的反而更少一点,说明它是一个什么。说明它是一个核啊,单细胞核测序的结果啊。接下来呢,就是要进行动力学模拟了,哎,它嫁接的是SSCV。Sz vlo呢,其实在模拟动力学的时候呢,前面提到了它有三种模型,一种是稳态模型,另外第二种是动态模型,第三种是这个随机模型,随机模型当然直接就否定了,不可能啊。
69:10
啊,我们软件推啊,包括软件自己啊,包括我们在用的时候都推荐这个仲台模型n job是个和的一个数量啊,大家如果计算机性能比较高,可以设的大一点啊,当然性能比较低就可以设的小一点啊,像这个我是80核的,就是40个节点,哎,我用了30个啊。这样的话,他计算的时间会快一点,会稍微快一点。公司啊,没有公司一步步给你测试啊,说0.1~1测试好,最后判定0.5最好没有啊。都是那种,呃,都是那种。呃,都是那种什么呢?都是那个,就是说0.5是默认的啊,做的项目多了,认为0.5再分大类比较好啊。
70:02
大家可以看看,在恢复动力学模型的时候,即使提到30核,它的速度还是相当的慢,相当的慢,这个在运行过程中呢,大家随着计算机性能呢,它会有一些,哎呀,反正有一些限速步骤,这个地方就是限速步骤了。嗯,大家稍微等一下啊,这个过程还是比较慢的。我们来看一下,哎,开始了啊,就比较慢啊,因为大家可以看一下我这个样板间多大呀。我的样本。呃,我的a data才多大的一个信息啊,才呃1呃,1000多个基因,2000不到3000个细胞,它整个的运行过程都相当的慢,相当的慢,可想而知,大家如果是多样本。多个样本。
71:00
哎,可想而知,大家是多个样本,一个样本上万的细胞,如果是5个样本5万个细胞。生成它的文件,生成它的一个。呃,动力学模型,大家想想这个时间需要多久啊,时间需要多久,一般这种多矩阵联合分析的都是非常耗时间的啊,相当耗时间。所以说,所以说为什么推荐大家用服务器啊,就这个原因啊。就像大家用服务器就是这个原因啊,它就是因为你不用服务器,你这电脑确实带不动啊,带不动当然了,大家自己电脑要跑一跑,那thread的基础分析过程,这个是没有问题的啊。哎,我们稍微等他一下。等待的过程呢,大家可以看一看这个。哎,他的一个kel的一个。计算方式啊,看到的一个方式,把它认真理解一下啊,这个就是刚才剪切了刚才这个生成的这个图啊。
72:01
下面还有一些其他的分析。估计器啊,我们看一下估计器。哎,首先是计算起始和终止状态,哎,它通过通过判断的起算,大家可以看到轨迹分析呢,大家会类似于这种塑形结构,但也不是完全塑形,它在识别这个末端状态的时候呢,诶大家可以看一下。就是这种末端状态,他认为是一个要么是起始位点,要么是终止位点,然后通过这种和函数的计算,哎。进一步推断哪个是起点,哪个是终点,哎,通过这样的话自动判断。发育轨迹。接下来就是推断细胞命运,哎,推断细胞命运呢,其实就是前面已经指定好起点和终点之后呢,来推断它细胞的一个分化的过程。嗯,主要的结果呢,其实就是细胞之间的一个状态的一个转变啊。
73:01
转变状变状态的一个转变,尤其是这种图啊,在转变过程中,基因的表达一个表达,表达的一个情况啊。最后呢,其实最后的才是我们想要的一个结果,拿到一个轨迹之后呢,我们是想知道基因的一个变化,像mon尼CO2呢,它会在这个分支上形成那个分化热图,中间向两边分化的那个热图,而这个软件呢,它会在基础之上呢,诶。告诉你像两个分支分化的时候,它的一个基因表达是啊,这种线性线性的一个图啊。就这种图,还有热图。哎,当然这都是一些可视化的方法了,最主要的是前面的计算啊。嗯,看他计算完了没有。啊,大家可以看相当的慢,这是相当的慢。啊,有的时候呢,大家可以看一看它输出的信息到底是什么warning。
74:04
啊,Warning不是报错,Warning往往是什么呢?信息不充分。比如说这个warning TPS de, 这是个基因,哎,并没有恢复,由于无效的样本说明这个样本数量不够多,2000个还是有点少,所以他在恢复这个基因可变碱基的上发现它的睿智数比较少,无法恢复。啊,所以说大家样本多起来的时候,这种猫就会减少啊,这种和样本数量有关啊,像我这2500呢,确实不太多啊,不太多,而且2500是一种混合肽啊,里面既包含了各种各样的细胞类型,它们之间不一定都有分化关系的啊。必须从半文件开始了吗?细胞轨迹已经是细胞层面的层次了,不需要包含所有,你要能,你要先生成这个录M文件,这个文件呢,比如说我们的a data已经生成了。我们拿到了他的这个。
75:01
呃,数据信息,Buckle的信息,如果你觉得这个细胞没有用,你把它就和就和那个threat一样,Subset一下就可以了,想要什么细胞类型抽什么细胞类型就可以啊。哎,我们恢复了动力学模型之后呢,接下来我们就需要,哎。恢复了动力学模型之后呢,接下来我们要往下走了啊。哎,计算动力是是这个吧。来计算这个动力学模型的状态。这个就很快了啊,这个就相对快了,它会在这个a lay上形成一个。哎,我们的韦老师地矩阵。老师的矩阵啊。接下来呢,就是刚才提到的核函数,核函数呢?呃,这里面推荐大家用velo斯ity加基因表达的一个基因表达这两个核函数相结合啊,我这里面的脚本也是封装了这两种方式,一种是前面的维罗斯ity提供的。一种是这个基因表达矩阵提供的这个。
76:02
呃呃,细胞之间相似度的一个计算。方。然后是计算这个。连接性,连接性就是类似于大家计算KO那种方法,然后计算转换矩阵,这种转换矩阵呢。这种转化矩阵其实就是发育的一种可能性啊。分数越高,说明我越可能发育,发育成你的。然后呢,这个地方就是一个和函数权重的一个衡量啊,轨迹呢,我认为权重更高一点啊,就是维劳斯力的权重更高一点,呃,相似性的权重更低一点,这个0.8和0.2,如果大家呃不知道该怎么设的话,就参考它的官网进行设就可以了。哎,然后我们今天可视化看看效果啊。啊,U.哎,这个是样本的名字,我们取名为test啊。
77:00
这个可以外部指令,我们来看一下它的结果。来看一下啊。啊,这个就是结果了啊,大家可以看一下整体的一个结果啊,它的分化关系相当的。这是不是就是刚才那位同学所说的紊乱的状态啊?是吗?就是说发育没有明显的趋势这种的啊。就是说内部哎,没有一致的一个趋势,其实在真正的一个文献分析中,尤其是真实样本中,如果大家对细胞类型进行了一个认真的筛选。或者说细胞类型聚类比较好啊,相互分的很开,就像这个文献中的一个运用一样。哎,它的整体的分化其实是具有一致性的啊。就是这样的,具有一致性的,从这个地方慢慢孵化着,呃,箭头的大小代表了分化潜能的高低,像这种箭头比较大的,说明它的分化潜能比较大啊,就是刚才那个转换矩阵得到的一个呃潜力的那个分数。
78:10
哎,像这种也是一样的啊。接下来呢,就是我们的下游分析了,下游分析第一步干嘛。哎,估计起始和终止位点。估计和起始,估计起始和终止位点啊,这个地方呢,在计算的时候呢,有一个。还有一个这种小小的注意,是小小的注意事项啊。Walk.这个是绘图。哦,忘写了。哎,这个这个这一步还是不能少啊,这一步是来写函数的啊。然后呢,他在计算这个下游分析的时候啊,下游分析的时候是干嘛呢,其实就是一方面,哎,刚才提到了识别。
79:09
起始和终止位点,2、识别转换矩阵,3、识别驱动机啊,这是我们下游分析所要达成的一个目标啊。哎,记当然这些代码呢,大家可以看看就可以了,基本上是参考的它啊,有一些需要大家改动的地方啊,包括这个它在计算的时候,这个state的状态,这个state的状态大家可以看到诶3。可以。大家可以看到我这个样本不是很典型,它是聚成一坨了,但是真正的轨迹发育关系啊,类似于塑形结构居多,像这种塑形结构居多啊,或者说因为分开的这种分的比较开的居多啊,我这2500个细胞太少啊,太少。包括人家真正的这种轨迹分析啊,其实都是一种哎。
80:01
大面积分开分分段式的啊。哎,计算完之后呢,我们就需要对它进行一个就是这个状态,哎,这个就是刚才提到的micros status, 它就是来来计算这个末端,就是那个终端状态。这个状态呢,其实就是呃,要么是起始位点,要么是发育中,呃发育末的前面没跑。这个地方,这个地方怎么了。Same map will be not same.啊,他没有报错啊,没有报错,只是报了一个,报了一个那个,我们把它看一看啊。
81:04
哎,我们看看它这个终端状态的一个情况。这个在识别终端状态上和大家的细胞类型有关啊,以及它的降维局降维剧烈结果有关,你像我这个降维结果也比较差,它在识别终端状态的时候,它就识别这个这种终端状态啊。你大家可以看一下那个。他的例子,它的例子就很这种具有这种流线性了啊,所以它在识别终端状态的时候就会好得多啊。呃,这种流线型的啊,重装状态非常明显,人工都可以拆出来的,这种它为了自己的,呃,当然每个软件都要展现自己的优点,所以在识别的时候主要识别这种的啊。真实的情况怎么样?大家要根据自己的实际结果进行判断啊。这是终端状态,呃,然后呢。哎,就要识别它这个起止和终止位置了。
82:01
哎,识别起始和终止位置了啊。像这个地方识别的是terminal terminal是什么发育的中止位置啊,我们首先识别的是发育的中止位置。来,我们来看一下啊。发育的中指位置。哎,少了一个对吧,说明。4个终端位置,其中有3个他认为是发育终止的位置,那另一个自然就是发育起始位置啊。哎,我们接着运行啊,接着运行就可以了啊。这个地方为什么要设置成这个呢?因为我的细胞比较少,所以它跑的时候还会跑错啊,跑错这个地方有一个in initial少瑞啊in initial少瑞就是我们刚才识别的这个。呃,就是我们刚才识别的这个。
83:03
哎,这个起始位置,当然这个地方大家要注意啊,起始位置本应该是9,但这里面写成1了,为什么呢?因为细胞少的原因,它在识别这个还原,它在识别这个终端的时候,嗯。好呀。他在识别这个时候啊,发现这两个,大家可以发现这两个点其实很接近。它在计算周围细胞的一些相似度的时候,会发现,哎,这两个细胞好像,诶既可能是起始状态,也可能是终端状态,这个和大家的数据质量有关啊,数据质量有关,大家在调整的时候,一定要根据它的情况进行一个调整啊,很明显这种地方是错误的,就是一既是终端也是起,也是始端,这是不对的啊。这个和数据质量有关,大家在跑那个大样本量的时候,是不会出现这种问题的。啊,这里面我把它设置成第4个点。
84:03
第四个点,你看其中一三四已经用了一二二十七四二十六个点啊。啊,然后呢,就是画图了啊,画图看它的起始位点啊。看到的70位点。哎,伊initial少,伊利少就是它的起始点。哎,就是刚才指定的这个点,刚才那个终止点是它这儿这儿是吧,起始位点是它,这才是一个合理的结果啊。啊,大家如果用这种大样本量几万的这种细胞不会出这种结果,做售后的时候一般没有遇到过啊,只有在小样本演示的时候会有这种。哎,难受的问题,接下来就是一些简单的绘图啦,然后呢,我们就需要干嘛。计算细胞命运,就是第二个下游分析点,计算细胞命运,就是说细胞分化过程中呢。
85:04
哎,它的轨迹分析是怎样的。来看一下,我们来看一下啊。哎,就是它这个细胞泌。嗯,大家就可以看到啊,整体的命运的一个分布状态,0是时间点是这个比较靠近这个。哎,比较靠近这个发育起点的。呃,这个是末点,大家可以看一下,它在拟合的过程中啊,先单独拟合。先单独拟合怎么了?这个是刚开始识别的末端,这个也是末端,这个是末端,它在识别的时候啊,先分开进行一个拟合,起点是哪?起点是刚才指定的这儿。先单独进行一个拟合,拟合这三个分支,哎,到底是怎样的一个时间点关系啊。这个就和大家图上的这个结构差不多。
86:01
来计算这个。这种嗯,它在计算各个分支的一个哎,分化的一个关系,首先计算各个分支之间的分化的一个关系。最终呢,把它一个最终,呃,进行一个推断。我到哪儿了?What it?哎,然后呢,把所有的分析结果,所有的。就是说刚才推断的三个轨迹的一个相同时间进行一个拟合,形成统一的一个时间点。这个时候呢,就是一张图了啊。哎,这个时候呢,就会形成这样一张图啊。当然,这个fate命运啊。那卡拉巴哪儿去了?哎,它就会形成这样一个密语啊,非密语。啊,没有卡了吧,它其实是把三种,呃,前面这几种相同的命运啊,合成一张图了,诶,通过这种图来计算这个轨迹发育的一个关系啊。
87:08
最后呢,呃,当然这都是可视化的一些方法了,其实就是简单的画图啊。这个重要,大家自己画就可以了。只是写法要写的像我这样这种写法,封装类的写法啊。Circle.哎呀,当然我这个是3个节点的,翻译出来就是这样的样子啊。哎,最后呢,最后呢,还有对基因的一个可视化的一个。对,这个driver基因的一个可视化啊。我们来看一下计算的债务机。哎,计算的抓物机。每一个分支哎,都会计算一个专我基因,以及它的一个显著性的一个问题啊。
88:04
当然我这里面有3个分支,因为有4个点,所以有3个分支,它每个分支呢,都会计算这个Java基因的一个。呃驱动,呃驱动基因的一个,哎,它是不是在这个分支上显著的有显著的一个变化。啊,等等等等,当然就是又是可视化了啊,对它进行一个画图。哎,画出来的图呢,就是。哎,画出来的图呢,就和那个参考的图是一样的啊。叫什么名字啊?加我集your map.哎,画出来这种抓捕基因的图了啊。这种图在各个分支上是不是分布有趋势啊?
89:01
嗯,最后呢,就是可视化这个class的基因表达的一个串,就是它那个线性图啊。这个基因也可以人为指定啊,我这里面取了默认的钱,显著的前几个。啊,显著的前几个进行了一个叫什么。串。哎,运行的结果呢,就是这种。哎,每个基因它在每个分支上,哎,呈现出怎样的一个变化,在命运1上是怎样,在命运2上是怎样啊,这个大家画图的时候可以把多个基因给他指定的啊。画到这个结构上啊,最后呢,就是画一张热图了,这个就不给大家画了啊,其实后面都是一些可视化的结果啊,这就是封装类脚本的一个用法,真正用的时候呢,就跟我刚才一样啊。哎,传个3就可以了,它会自动跑出来我们现在想要的这些所有的结果,包括驱动基因的列表,还有生成我们想要的,呃,所有分析结果,生成的an data一个格式啊。
90:09
啊,这里面再提醒大家一句,在这个命名的时候,大家要命名的,把这个文件命名的像那么回事儿啊,比如说像我这样,他如果是决定命名的,就把这个单词写上啊,不要瞎命名啊,命名的,尤其是封装类脚本,这个图片不能重复,一旦重复会进行覆盖,一定要根据它的特性进行一个合理的命名啊。啊,服务器不可以display啊,服务器一般都要下到本地啊,打包一下。嗯,什么没有同时啊,其实这个是因为我数据是演示数据啊,大家自己分析是不会出现这种情况的啊。这个时候咋没时间呢,咋看呢,看来你没有跑过轨道4题啊。韦老师的正,嗯,诶。
91:03
Velocity的图啊,其实就是那种这种图啊。唱的共享。Velocity的时间关系啊?它其实就是个流向,还。啊,就是这种流向箭头所指的方向,哎,就是它的时间点啊。当然我这个图不典型,大家可以看这个文献的这个啊。比如说借助它这个v loss层,哎,它的一个时间点流向就是这样的。哎,就是这样的,它的发育方向就是从这儿开始往那一直溜溜溜溜溜,这就是他的时间关系啊。好了,这就是今天所要讲的这个velocity的一个内容了啊,大家要注意啊,这里面强调一下这个velocity的一个运用,因为它是多矩阵分析,所以它在分析的内容上和难度上会稍有提升,包括大家在分析的时候一定要注意其中的一些数据的一个选择啊。
92:06
你像我这个只有2500个乘以1200多个基因,哎,它的时间就相就相当于要耗好几分钟了啊,一旦这个基因提高或这个细胞量提高,哎呀,这个时间点就这个时间就耗得更久了,需要大家封装好,像我一样封装好。哎,投到后台运行,拿到自己想要的结果啊。啊,我的服务器不可以啊,你的应该可以啊。啊,况且我也习惯了下载下来啊。
我来说两句