正文
python多峰函数 pandas 峰度
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
python分析单细胞数据,多细胞去除的模块
hi,各位道友,上次python多峰函数我们介绍python多峰函数了R包DoubletFinder用于去除多细胞 那么python是否也有类似的模块去除多细胞呢,答案是有的。这次我们就来使用一下python模块去除多细胞
Single-Cell Remover of Doublets
Python code for identifying doublets in single-cell RNA-seq data
给定一个原始的(未归一化的)UMI,以细胞为行,基因为列的矩阵counts_matrix计数,计算每个单元的多细胞得分。
scr.scrub_doublets()从观察到的数据模拟双峰,并使用k最近邻分类器为每个转录组计算一个连续doublet_score(介于0和1之间)。 分数将自动设置为阈值以生成predicted_doublets,这是一个布尔数组,对于预测的doublets为True,否则为False。
最佳做法python多峰函数:
一、处理来自多个样本的数据时,请分别对每个样本运行Scrublet。 因为Scrublet旨在检测由两个细胞的随机共封装形成的多细胞捕获,所以它在多个样本的合并数据集上可能表现不佳(原因大家都懂的)。
二、检查doublet分数阈值是否合理(在理想情况下,如本例所示,将双峰模拟doublet分数直方图的两个峰分开),并在必要时进行手动调整。例子在本文的后面展示。
三、可视化二维嵌入中的多细胞预测(例如UMAP或t-SNE)。 预测的双峰应该大体上共定位(可能在多个群集中)。 如果不是,则可能需要调整doublet得分阈值,或更改预处理参数以更好地解析数据中存在的单元格状态。
接下来我们看一下如何使用
第一步,导入必要的模块
第二步python多峰函数:读入矩阵,要求如上述所讲,计算多细胞比率
这一步包括
Initialize Scrublet object
相关参数是:
expected_doublet_rate:预期多细胞的比率,通常为0.05-0.1。 结果对该参数不是特别敏感。
sim_doublet_ratio:相对于观察到的转录组数量,要模拟的双峰数量。 此值应该足够高,以使所有的doublet状态都能通过模拟doublet很好地表示。 设置得太高在计算上是耗时的。 默认值是2,尽管低至0.5的值会为已测试的数据集提供非常相似的结果。
n_neighbors:用于构造观察到的转录组和模拟多细胞的KNN分类器的邻居数。 通常,round(0.5 * sqrt(n_cells))的默认值效果很好。
运行默认pipeline,其中包括:
双重模拟
标准化,基因过滤,重新缩放,PCA
多细胞计算
多细胞得分阈值检测和双峰调用
绘制观察到的转录组和模拟多细胞的多细胞得分直方图
模拟的多细胞直方图通常是双峰的。左模式对应于由具有相似基因表达的两个细胞产生的“嵌入”多细胞。 右边的的模式对应于“新型”多细胞,其由具有不同基因表达的细胞产生。 Scrublet只能检测”新型“双峰,这一点和doubleFinder的R包一样。
要比较单细胞与多细胞,我们必须设置一个阈值多细胞得分,理想情况下,应在模拟的双峰直方图的两种模式之间设置最小值。 scrub_doublets()尝试自动识别这一点,并且在本示例中做得很好。 但是,如果自动阈值检测效果不佳,则可以使用call_doublets()函数调整阈值。 例如:
scrub.call_doublets(threshold=0.25)
接下来我们画一下这个多细胞分布的直方图:
获取二维嵌入以可视化结果 (Tsne同理)
python是什么样的编程语言?
由于近几年人工智能的不断发展,Python也跟着火了,因为Python是深度学习技术的主流应用编程语言。同时它的应用场景很多,被称为“胶水语言”。优妹儿就帮小伙伴们科普一下,Python这门神奇编程语言的发展趋势,以及语言特性,帮助想要学习Python的小伙伴们,更清晰的了解它。
Python第一个公开发行版发行于1991年,所以这年被当作Python的诞生年。Python源代码遵循GPL协议(通用公共许可证),这是一个开源的协议,也就是说你可以免费使用和传播它,而不用担心版权的问题。
Python是一种跨平台的计算机程序设计语言, 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,Python越来越多被用于独立的、大型项目的开发。
Python的发展趋势
上图是2020年9月的Tiobe编程社区指数(它是编程语言流行度的指标),全球编程语言热度排行榜。如果感觉上图的排行不够直观,可以看下面这张柱状图↓
从中我们能看出Python已经超越C++和C#,强势位列第三,当之无愧的解释型语言领头羊。
解释型语言是指在运行程序的时候才翻译代码,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译。解释型语言缺点是运行速度会比较低,依赖解释器,优点是跨平台性好。
而时至今日,计算机的硬件性能已经得到数量级的提高,计算能力不再是限制编程语言的最重要的因素,敏捷开发成为生产环境下对语言选择的重要因素,Python很好的满足了这一点,从而得到快速发展。
Python语言的特性
1、简单易学、明确优雅、开发速度快
简单易学:与C和Java比,Python的学习成本和难度曲线低了很多,更适合新手入门,是自底向上的技术攀爬路线。先订个小目标爬个小山,然后再往更高的山峰前进。而不像C和JAVA光语言学习本身,对于很多初学者来说就像珠穆朗玛峰一样高不可攀。
明确优雅:Python的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、维护等都非常容易。一个小小的脚本,用C可能需要1000行代码、用JAVA可能要几百行,但是用Python往往只需要几十行就能实现!
开发速度快:当前互联网企业的生命线是什么?产品开发速度!如果你的开发速度不够快,在你的产品推出之前别人家的产品已经上线了,你也就没有生存空间了,这里的真实例子数不胜数。那么,Python的开发速度说第二没人敢称第一!(不欢迎辩论^_^)
2、 跨平台、可移植、可扩展、解释型、面向对象的动态语言
跨平台:Python全面支持Windows、Linux和MAC os等主流操作系统。
跨平台是指:使用不同的操作系统开发程序、运行程序,不用修改代码。
可移植:代码通常不需要多少改动就能移植到别的平台上使用。
可扩展:Python语言本身由C语言编写而成的,你完全可以在Python中嵌入C,从而提高代码的运行速度和效率。你也可以使用C语言重写Python的任何模块,从根本上改写Python。
解释型:Python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。
面向对象:Python语言具备所有的面向对象特性和功能,支持基于类的程序开发。
动态语言:在运行时可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言非常具有活力。
3. “内置电池”,大量的标准库和第三方库
Python为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作,这一特点被形象地称作“内置电池(batteries included)”。
4. 社区活跃,贡献者多,互帮互助
技术社区的存在就相当于程序员手中的指南针,没有指南针,很多时候,碰到了问题,就像无头的苍蝇只能到处乱飞,最终在茫茫的海洋中转晕致死。技术社区可以给我们对语言的学习和使用提供巨大的帮助,无论是前期的学习,还是日后的工作,只要有问题,技术社区的大牛都可以帮我们解决,有这些助力,可以帮我们更好地了解、学习和使用一门语言。技术社区同时还推动Python语言的发展方向,功能需求,促使公司企业更多的使用Python语言,招聘Python程序员。
5. 开源语言,发展动力巨大
Python是基于C语言编写的,并且使用GPL开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与Python的开发,促使它更好的发展,被更多的应用,形成良性循环。Python为什么会越来越火就是因为它的开放性,自由性,聚起了人气,形成了社区,有很多人在其中做贡献,用的人越来越多,自然就提高了市场占有率,企业、公司、厂家就不得不使用Python,提供的Python程序员岗位就越来越多,这就是开源的力量。
python:5种正态性检验方法
1.直方图
由于正态分布具有非常典型的中间高,两边低的图形特征,如果样本数据并不服从正态分布,我们可以通过直方图很快地分辨出来。更进一步地,Python可以辅助生成基于样本数据估计的正态曲线,这样就容易辅助我们进行判断。
图形观察虽然直观,但是部分研究者认为单纯观察图形过于主观,因此我们也可以选择使用统计检验的方法去研究数据是否服从正态分布。
操作步骤:
导入相关的包及数据
2 P-P图及Q-Q图
直方图是最长用于观察数据分布的常用图形选项,尤其是带正态曲线的直方图,可以非常直观地看到实际数据分布和正态曲线的对比,而P-P图及Q-Q图则是另一种选择,它可以直观给出实际数据分布和理论的差距。
值得注意的是,虽然P-P图及Q-Q图常用用于判断数据样本是否服从正态分布,但实际上它们也能判断数据样本是否服从其他的分布
P-P图:反映的是数据的实际累积概率与假定所服从分布的理论累积概率的符合程度。在此处,我们所假定的分布就是正态分布,如果数据样本是服从正态分布的话,那么实际的累积概率与理论的累积概率应该是相对一致的,放映在图形中就是数据点应该沿着图形的对角线分布。
Q-Q图的原理与P-P图几乎一致。P-P图考察的是实际分布与理论分布的累积概率分布差异,而Q-Q图考察的是实际百分位数与理论百分位数的差异。同理在此处,我们所假定的分布就是正态分布,如果数据样本是服从正态分布的话,那么实际的分布应该是相对一致的,反映在图形中就是数据点应该沿着图形的对角线分布。
在Python中,statsmodels包中目前主要提供的是Q-Q图的绘制
柯尔莫戈洛夫-斯米诺夫检验(Kolmogorov-Smirnov test),一般又称K-S检验,是一种基于累计分布函数的非参数检验,用以检验两个经验分布是否不同或一个经验分布与另一个理想分布是否不同。
K-S检验的原假设是“样本数据来自的分布与正态分布无显著差异”,因此一般来说,KS检验最终返回两个结果,分别是检验统计量及P值,检验结果P0.05才是我们的目标。
实际上,GraphPad不推荐使用单纯的Kolmogorov-Smirnov test方法
夏皮洛-威尔克检验(Shapiro—Wilk test),一般又称W检验。W检验是一种类似于利用秩进行相关性检验的方法。同样需要注意的是,W检验与K-S检验一样,原假设是“样本数据来自的分布与正态分布无显著差异”,因此一般来说,W检验最终返回两个结果,分别是检验统计量及P值。,检验结果P0.05才是我们的目标。
当数据集中的数据无重复值时,该方法的检验效果比较好,但是当数据集中有些数据不是独一无二的,即有些数据的数值是相同的,那么该方法的检验效果就不是很好
GraphPad官方推荐使用该方法。
首先计算 偏度和峰度以便在不对称和形状方面量化分布离高斯分布的距离。然后,其计算这些值中的每一个与高斯分布的预期值之间的差异,并基于这些差异的总和,计算各P值。这是一种通用和强大的正态性检验,推荐使用。请注意,D'Agostino开发了几种正态性检验。Prism使用的其中一个是“综合K2”检验。
安德森-达令检验样本数据是否来自特定分布,包括分布:'norm', 'expon', 'gumbel', 'extreme1' or 'logistic'.
原假设 H0:样本服从特定分布; 备择假设 H1:样本不服从特定分布
实际上,从已有的文献表明,对于数据分布的正态性研究,首选方法是图形观察,即利用直方图、P-P图或Q-Q图进行观察,如果分布严重偏态和尖峰分布则建议进行进一步的假设检验。如果图形分布结果不好判断,则再进行正态性检验。
实际上,从已有的文献表明,对于数据分布的正态性研究,首选方法是图形观察,即利用直方图、P-P图或Q-Q图进行观察,如果分布严重偏态和尖峰分布则建议进行进一步的假设检验。如果图形分布结果不好判断,则再进行正态性检验。
其次,对于检验方法来说,对于K-S检验及W检验结果来说,有文献采用蒙特卡罗模拟方法进行多次验证,结果表明W检验结果相比于大部分方法都有较大的检验功效,而K-S方法的检验结果相对不佳。并且部分学者认为,K-S检验的实用性远不如图形工具,因为在样本量少时,该检验不太敏感,但是在样本量大时,该检验却过于敏感。因此正常情况下,我们更常采用W检验的结果。
值得注意的是,虽然说K-S检验结果相对不佳,但是不同检验方法对于样本量的敏感度是不一样的。在样本量较小的情况下(小于50个样本的情况下),请优先选择W检验;在样本量50-5000的情况下,可以酌情使用W检验及K—S检验;在样本量大于5000的情况下,请使用K-S检验结果,尤其是在SPSS中,当样本量大于5000的情况下,将只显示K-S检验结果,而不显示W检验结果。
python数据统计分析
1. 常用函数库
scipy包中python多峰函数的stats模块和statsmodels包是python常用python多峰函数的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了。这个模块被重写并成为了现在独立python多峰函数的statsmodels包。
scipy的stats包含一些比较基本的工具,比如:t检验,正态性检验,卡方检验之类,statsmodels提供了更为系统的统计模型,包括线性模型,时序分析,还包含数据集,做图工具等等。
2. 小样本数据的正态性检验
(1) 用途
夏皮罗维尔克检验法 (Shapiro-Wilk) 用于检验参数提供的一组小样本数据线是否符合正态分布,统计量越大则表示数据越符合正态分布,但是在非正态分布的小样本数据中也经常会出现较大的W值。需要查表来估计其概率。由于原假设是其符合正态分布,所以当P值小于指定显著水平时表示其不符合正态分布。
正态性检验是数据分析的第一步,数据是否符合正态性决定了后续使用不同的分析和预测方法,当数据不符合正态性分布时,python多峰函数我们可以通过不同的转换方法把非正太态数据转换成正态分布后再使用相应的统计方法进行下一步操作。
(2) 示例
(3) 结果分析
返回结果 p-value=0.029035290703177452,比指定的显著水平(一般为5%)小,则拒绝假设:x不服从正态分布。
3. 检验样本是否服务某一分布
(1) 用途
科尔莫戈罗夫检验(Kolmogorov-Smirnov test),检验样本数据是否服从某一分布,仅适用于连续分布的检验。下例中用它检验正态分布。
(2) 示例
(3) 结果分析
生成300个服从N(0,1)标准正态分布的随机数,在使用k-s检验该数据是否服从正态分布,提出假设:x从正态分布。最终返回的结果,p-value=0.9260909172362317,比指定的显著水平(一般为5%)大,则我们不能拒绝假设:x服从正态分布。这并不是说x服从正态分布一定是正确的,而是说没有充分的证据证明x不服从正态分布。因此我们的假设被接受,认为x服从正态分布。如果p-value小于我们指定的显著性水平,则我们可以肯定地拒绝提出的假设,认为x肯定不服从正态分布,这个拒绝是绝对正确的。
4.方差齐性检验
(1) 用途
方差反映了一组数据与其平均值的偏离程度,方差齐性检验用以检验两组或多组数据与其平均值偏离程度是否存在差异,也是很多检验和算法的先决条件。
(2) 示例
(3) 结果分析
返回结果 p-value=0.19337536323599344, 比指定的显著水平(假设为5%)大,认为两组数据具有方差齐性。
5. 图形描述相关性
(1) 用途
最常用的两变量相关性分析,是用作图描述相关性,图的横轴是一个变量,纵轴是另一变量,画散点图,从图中可以直观地看到相关性的方向和强弱,线性正相关一般形成由左下到右上的图形;负面相关则是从左上到右下的图形,还有一些非线性相关也能从图中观察到。
(2) 示例
(3) 结果分析
从图中可以看到明显的正相关趋势。
6. 正态资料的相关分析
(1) 用途
皮尔森相关系数(Pearson correlation coefficient)是反应两变量之间线性相关程度的统计量,用它来分析正态分布的两个连续型变量之间的相关性。常用于分析自变量之间,以及自变量和因变量之间的相关性。
(2) 示例
(3) 结果分析
返回结果的第一个值为相关系数表示线性相关程度,其取值范围在[-1,1],绝对值越接近1,说明两个变量的相关性越强,绝对值越接近0说明两个变量的相关性越差。当两个变量完全不相关时相关系数为0。第二个值为p-value,统计学上,一般当p-value0.05时,可以认为两变量存在相关性。
7. 非正态资料的相关分析
(1) 用途
斯皮尔曼等级相关系数(Spearman’s correlation coefficient for ranked data ),它主要用于评价顺序变量间的线性相关关系,在计算过程中,只考虑变量值的顺序(rank, 值或称等级),而不考虑变量值的大小。常用于计算类型变量的相关性。
(2) 示例
(3) 结果分析
返回结果的第一个值为相关系数表示线性相关程度,本例中correlation趋近于1表示正相关。第二个值为p-value,p-value越小,表示相关程度越显著。
8. 单样本T检验
(1) 用途
单样本T检验,用于检验数据是否来自一致均值的总体,T检验主要是以均值为核心的检验。注意以下几种T检验都是双侧T检验。
(2) 示例
(3) 结果分析
本例中生成了2列100行的数组,ttest_1samp的第二个参数是分别对两列估计的均值,p-value返回结果,第一列1.47820719e-06比指定的显著水平(一般为5%)小,认为差异显著,拒绝假设;第二列2.83088106e-01大于指定显著水平,不能拒绝假设:服从正态分布。
9. 两独立样本T检验
(1) 用途
由于比较两组数据是否来自于同一正态分布的总体。注意:如果要比较的两组数据不满足方差齐性, 需要在ttest_ind()函数中添加参数equal_var = False。
(2) 示例
(3) 结果分析
返回结果的第一个值为统计量,第二个值为p-value,pvalue=0.19313343989106416,比指定的显著水平(一般为5%)大,不能拒绝假设,两组数据来自于同一总结,两组数据之间无差异。
10. 配对样本T检验
(1) 用途
配对样本T检验可视为单样本T检验的扩展,检验的对象由一群来自正态分布独立样本更改为二群配对样本观测值之差。它常用于比较同一受试对象处理的前后差异,或者按照某一条件进行两两配对分别给与不同处理的受试对象之间是否存在差异。
(2) 示例
(3) 结果分析
返回结果的第一个值为统计量,第二个值为p-value,pvalue=0.80964043445811551,比指定的显著水平(一般为5%)大,不能拒绝假设。
11. 单因素方差分析
(1) 用途
方差分析(Analysis of Variance,简称ANOVA),又称F检验,用于两个及两个以上样本均数差别的显著性检验。方差分析主要是考虑各组之间的平均数差别。
单因素方差分析(One-wayAnova),是检验由单一因素影响的多组样本某因变量的均值是否有显著差异。
当因变量Y是数值型,自变量X是分类值,通常的做法是按X的类别把实例成分几组,分析Y值在X的不同分组中是否存在差异。
(2) 示例
(3) 结果分析
返回结果的第一个值为统计量,它由组间差异除以组间差异得到,上例中组间差异很大,第二个返回值p-value=6.2231520821576832e-19小于边界值(一般为0.05),拒绝原假设, 即认为以上三组数据存在统计学差异,并不能判断是哪两组之间存在差异 。只有两组数据时,效果同 stats.levene 一样。
12. 多因素方差分析
(1) 用途
当有两个或者两个以上自变量对因变量产生影响时,可以用多因素方差分析的方法来进行分析。它不仅要考虑每个因素的主效应,还要考虑因素之间的交互效应。
(2) 示例
(3) 结果分析
上述程序定义了公式,公式中,"~"用于隔离因变量和自变量,”+“用于分隔各个自变量, ":"表示两个自变量交互影响。从返回结果的P值可以看出,X1和X2的值组间差异不大,而组合后的T:G的组间有明显差异。
13. 卡方检验
(1) 用途
上面介绍的T检验是参数检验,卡方检验是一种非参数检验方法。相对来说,非参数检验对数据分布的要求比较宽松,并且也不要求太大数据量。卡方检验是一种对计数资料的假设检验方法,主要是比较理论频数和实际频数的吻合程度。常用于特征选择,比如,检验男人和女人在是否患有高血压上有无区别,如果有区别,则说明性别与是否患有高血压有关,在后续分析时就需要把性别这个分类变量放入模型训练。
基本数据有R行C列, 故通称RC列联表(contingency table), 简称RC表,它是观测数据按两个或更多属性(定性变量)分类时所列出的频数表。
(2) 示例
(3) 结果分析
卡方检验函数的参数是列联表中的频数,返回结果第一个值为统计量值,第二个结果为p-value值,p-value=0.54543425102570975,比指定的显著水平(一般5%)大,不能拒绝原假设,即相关性不显著。第三个结果是自由度,第四个结果的数组是列联表的期望值分布。
14. 单变量统计分析
(1) 用途
单变量统计描述是数据分析中最简单的形式,其中被分析的数据只包含一个变量,不处理原因或关系。单变量分析的主要目的是通过对数据的统计描述了解当前数据的基本情况,并找出数据的分布模型。
单变量数据统计描述从集中趋势上看,指标有:均值,中位数,分位数,众数;从离散程度上看,指标有:极差、四分位数、方差、标准差、协方差、变异系数,从分布上看,有偏度,峰度等。需要考虑的还有极大值,极小值(数值型变量)和频数,构成比(分类或等级变量)。
此外,还可以用统计图直观展示数据分布特征,如:柱状图、正方图、箱式图、频率多边形和饼状图。
15. 多元线性回归
(1) 用途
多元线性回归模型(multivariable linear regression model ),因变量Y(计量资料)往往受到多个变量X的影响,多元线性回归模型用于计算各个自变量对因变量的影响程度,可以认为是对多维空间中的点做线性拟合。
(2) 示例
(3) 结果分析
直接通过返回结果中各变量的P值与0.05比较,来判定对应的解释变量的显著性,P0.05则认为自变量具有统计学意义,从上例中可以看到收入INCOME最有显著性。
16. 逻辑回归
(1) 用途
当因变量Y为2分类变量(或多分类变量时)可以用相应的logistic回归分析各个自变量对因变量的影响程度。
(2) 示例
(3) 结果分析
直接通过返回结果中各变量的P值与0.05比较,来判定对应的解释变量的显著性,P0.05则认为自变量具有统计学意义。
关于python多峰函数和pandas 峰度的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。