NC | Spatial-ID:通过迁移学习和空间嵌入进行空间高分辨转录组数据的细胞注释

腾讯 AI Lab 联合深圳华大生命科学研究院团队,开发了一种基于自监督学习的空间转录组(spatially resolved transcriptomics,SRT)细胞注释方法Spatial-ID(SPATIAL cell type IDentifification)它集成了迁移学习和空间嵌入策略。该方法通过迁移学习从已有的单细胞转录组数据集迁移单细胞表达谱知识。该方法通过嵌入空间信息,利用细胞在空间背景下与相邻细胞之间的可能存在的交互关系或共表达模式,提升细胞类型识别的准确性,且对来自不同测序技术的数据具有较强稳健性。此外,将Spatial-ID应用于先前通过华大自主研发的时空组学技术Stereo-seq获取的小鼠大脑数据集,证实了其对具有亚细胞空间分辨率的三维大视场组织的可扩展性,这为构建大视场空间转录组脑图谱提供了一个很有前景的途径。该文章在2022年12月10日发表于Nature Communications,以下是文章的详细解读。

细胞类型注释是细胞和组织生物学的一项基本任务,可以帮助在单细胞水平上表征组织的生物学过程。该任务通常通过对scRNA-seq技术获取的数据进行单细胞转录组分析来执行。面对与测序技术相关的高维噪声数据呈指数级增长,需要能够有效降维且对数据噪声具有稳健性的高性能注释方法。对于能够提供空间信息的SRT数据,全面注释其细胞类型以了解单细胞水平的生物过程更具有挑战性。例如,基于spots的方法(Visium、Slide-seq、HDST和Stereo-seq等)从跨越多于(或少于)一个细胞的区域捕获RNA,而没有考虑细胞边界,这会给细胞注释引入细胞分割的困难。同时,转录检测灵敏度低或基因捕获率有限,亦会增加细胞类型注释的难度。

Spatial-ID是什么?

Spatial-ID有效整合了现有的参考scRNA-seq数据的知识和空间分辨转录组数据的空间信息。它的分析流程主要为3个阶段。阶段1为参考数据集的知识迁移;阶段2为基因表达谱和SRT数据集空间信息的特征嵌入,并采用自监督策略,通过阶段1中生成的伪标签来训练分类器;阶段3使用从阶段2导出的最优模型对SRT数据集进行细胞类型注释。

阶段1使用scRNA-seq数据集和从相似组织收集的定义明确的细胞类型基因特征来训练深度神经网络(deep neural network,DNN)模型(图1a)。通过预训练的DNN为SRT数据集的每个细胞生成概率分布,然后通过温度设置策略使用概率分布构建伪标签(图1b)。阶段2的图卷积网络(graph convolution network,GCN)包含一个自动编码器(对基因表达谱进行编码)、一个变分图自动编码器(嵌入空间信息)和一个分类器。给定一个SRT数据集,将基因表达谱转化为细胞-基因矩阵,将每个细胞作为一个节点,将细胞之间的空间位置关系作为边,构建空间邻域图,其中每对细胞的关系权重与欧氏(Euclidean)距离呈负相关(图1c、1d、1e)。同时,利用自监督学习策略采用最终的隐式表达Z和阶段1生成的伪标签L对分类器进行训练,训练过程优化GCN模型的参数直到收敛,并保存最优模型。阶段3(即推理阶段)从阶段2重新加载最优模型,并输出给定SRT数据集的细胞类型预测。

Spatial-ID在不同数据集中的应用及功能评价

在MERFISH测量的小鼠初级运动皮层和下丘脑视前区数据集中的应用

研究人员通过定量比较了Spatial-ID和对照方法(Seurat v3、SingleR、Scmap、ScNym、SciBet、Tangram、Cell2location)分析MERFISH测量的小鼠初级运动皮层(MOP)数据集的性能(图2a)。其中,MOP数据集包含12个样本,包括总共280,186个细胞和254个基因。snRNA-seq 10x v3 B数据集(MOP数据集的匹配数据集)被用作Spatial-ID中DNN模型的训练集和对照方法中的参考数据集,包含159,738个细胞和31,053个基因。结果显示,与对照方法相比,Spatial-ID方法能有效地识别细胞类型(图2c)并获得更好的性能(图2f)。在所有12个MOP样本上,Spatial-ID达到了最高的平均准确率92.75%,显著优于对照方法。此外,Spatial-ID实现了平均加权F1分数为0.9209。为了验证Spatial-ID对不同基因丢失率数据集的稳健性,研究人员通过随机丢弃MOP数据集基因表达谱中的部分值来进行模拟实验,发现相同条件下,Spatial-ID较对照方法可以实现更好的细胞类型注释性能(图2j)。特别是在低丢失率下(小于0.6),Spatial-ID的性能下降小于最优对照方法。以上结果展示了Spatial-ID用于参考数据集中迁移知识的前景,即使它们的基因丢失率与新生成的数据集不同。

接下来,研究人员对Spatial-ID进行后处理,以进一步区分MOP数据集中出现但在snRNA-seq 10x v3 B数据集中看不到的新细胞类型(如L4/5 IT和L6 IT Car3神经元),最终显示L4/5 IT和L6 IT Car3神经元的F1得分分别为0.405和0.904,被确定为新的细胞类型(图2k)。

为了定量比较Spatial-ID应用于3D SRT数据集的性能,研究人员使用MERFISH测量的小鼠下丘脑视前区(1.8 mm×1.8 mm×0.6 mm;图 3a)数据集进行基准分析。该数据集包括从2只雌性小鼠和1只雄性小鼠中收集的总共213,192个细胞和155个基因(图3b);每个样本(Bregma 0.26~−0.29)包含12个切片,间隔为50 µm。参考scRNA-seq数据集从成年雌性小鼠和雄性小鼠的3个重复的下丘脑视前区(2.5 mm×2.5 mm×1.1 mm)收集,包括31,299个细胞和27,998个基因。结果显示,Spatial-ID的平均精度为87.74%(图3c、3e),达到了最高,显著优于对照方法;DNN在所有3个样本上达到了85.00%的平均准确率,这表明空间位置信息也有利于Spatial-ID对3D SRT数据集进行细胞注释。在3D视图中(图3d),研究人员观察到Spatial-ID的细胞类型分布与ground truth高度一致,这较对照方法具有明显的优势。此外,Spatial-ID获得了最高的平均加权F1分数0.8773。以上表明,Spatial-ID可以有效地应用于3D SRT数据集,与对照方法相比,其识别的细胞类型(图3f)显示出与ground truth更好的对应关系。

在Slide-seq测量的小鼠精子发生数据集中的应用

研究人员通过Slide-seq测量的小鼠精子发生数据集(图4a)对Spatial-ID进行基准分析。该数据集来自3只瘦素缺乏型糖尿病(ob/ob)小鼠和3只野生型(WT)小鼠,包括总共207,335个细胞和24,105个共同基因。参考scRNA-seq数据集包括来自成年小鼠睾丸的34,633个细胞和37,241个基因。Spatial-ID的注释结果见图4b。基于定量比较,证明了Spatial-ID对小鼠精子发生数据集中细胞类型的识别具有更高的准确性(图4c)。其中,Spatial-ID对6个样本的平均准确率均达到60.45%(图4c),平均加权F1得分为0.5500,与对照方法Cell2location(62.88%)相当。消融分析表明,DNN在所有6个样本上实现了58.27%的平均准确度,这再次说明了空间信息的重要性,表明Spatial-ID也可以有效地处理具有数万个基因的基于spots的Slide-seq数据集。同时,研究人员观察到野生型小鼠曲细精管的空间结构相对规则(图4d),而糖尿病小鼠曲细精管的空间结构不规则(图4e)。此外,研究人员比较了Spatial-ID和对照方法在该SRT数据集上的运行时间,发现Spatial-ID、ScNym和SciBet的运行效率远高于其他方法(图4f);进一步分析表明,随着细胞数量的增加,Spatial-ID的运行时间呈线性增加(图4g)

在人类NSCLC数据集中的应用

研究人员还在人类非小细胞肺癌(non-small-cell lung cancer,NSCLC)SRT数据集上对Spatial-ID进行了基准分析。该数据集是通过CosMx SMI平台从60岁以上患者的福尔马林固定石蜡包埋样本中获得的单个数据集Lung1-9,包含20个样本,包括总共83,621个细胞和980个基因。参考scRNA-seq数据集包括49,532个细胞和22,180个基因。结果显示,Spatial-ID在所有20个样本上达到了最高的平均精度69.76%(图5a),平均加权F1得分为0.6288。消融分析表明,DNN在所有20个样本上实现了68.09%的平均准确度。此外,研究人员观察到人类NSCLC数据集中的细胞类型以肿瘤细胞为主(图5b、5c)。值得说明的是,由于该数据集的某些细胞类型中细胞数量稀少,且细胞的ground truth标签在特征空间中难以区分,Spatial-ID遗漏了一些稀有的细胞类型(图5d),虽然后处理能够检索到2种遗漏的细胞类型(图5f~h),但可能需要测量更多的基因以进一步识别这些细胞类型。

在Stereo-seq测量的大视野小鼠大脑半球数据集中的应用

随着空间分辨率的不断提高,新兴SRT技术Stereo-seq可以在亚细胞空间分辨率下产生大视野组织中大量细胞的高通量亚细胞SRT数据。本研究中,研究人员使用Stereo-seq生成了沿小鼠右脑半球前后轴的3个相邻冠状切片(10 μm厚,无间隔)的单细胞空间基因表达图谱(图6a),包括总共140,816个细胞。参考scRNA-seq数据集选用来自Linnarsson Lab的单细胞小鼠大脑细胞类型图谱。参考数据集中包含152种细胞类型和747个标记基因的113,488个细胞的子集被用作Spatial-ID的训练集。

基于Spatial-ID的预测,小鼠大脑的3个冠状切片的识别细胞类型呈现高度一致性(图6b),每个切片中平均99%的细胞被分配到它们共同的细胞类型。根据参考数据集的细胞类型分类,65,174个细胞(50.8%)被识别为兴奋性神经元,20,267个细胞(15.8%)被识别为抑制性神经元,42,840个细胞(33.4%)被识别为非神经元细胞类型(图6c)。具体而言,大多数已识别的兴奋性神经元是具有谷氨酸能神经递质(TEGLU)的端脑投射神经元,分布在大脑皮层和海马体中(图6e、6j、6k);其他具有谷氨酸能神经递质的兴奋性神经元(MEGLU、HBGLU)分布在中脑和后脑中。鉴定的抑制性神经元主要由TEINH19和MEINH8组成(图6i),其中TEINH19神经元分布在皮质层和海马CA3区域,MEINH8分布在中脑中。已识别的非神经元细胞分散分布在小鼠大脑半球中。

根据艾伦大脑图谱,整个小鼠右脑半球可以大致分为八个空间解剖功能区,包括同皮质区域、海马结构、嗅觉区、中脑、后脑、间脑、纤维束和血管系统。通过量化这些脑区域中的细胞,研究人员观察到不同的功能区域具有不同的已识别细胞类型组合(图6d)。此外,研究人员进一步说明了在VISp和AUD区域中沿着皮质深度从L2/3到L6的细胞连续梯度(图6e)。针对鉴定的主要细胞类型,研究人员进一步分析了参考数据集提供的典型标记基因的基因表达特异性(图6f),发现这些标记基因在相应的细胞类型中表达量最高,且比例也较高(图6g)。有趣的是,研究人员观察到ACNT2标记基因Slc6a11在非端脑星形胶质细胞的另一个亚类ACNT1中的表达高于ACNT2(图6g)。

研究人员进一步研究了表示底层细胞类型的空间变化基因,以及它们的分组空间模式。Hotspot总共检测到30个特定的空间基因模式,其中6个如图6h~k所示。值得注意的是,空间基因模式可能由来自单个已识别细胞类型的特定类型基因组成(图6h),但也可能由来自不同已识别细胞类型的区域特定基因组成。基于GO的富集结果表明,空间基因模式P26可能参与了中枢神经系统的髓鞘形成和轴突鞘,可能支持脾后皮质在空间编码、记忆形成和信息整合中的作用(图6l)。中脑中明显的空间基因模式P17(图6h),包含基因Ucn、Slc5a7、Chodl等,显著富集在中缝背核(dorsal raphe nucleus,DRN)的亚区域中。因此,已识别的MEGLU14神经元(标记基因:Cartpt、Ucn和 Chodl)专门富集于该区域中(图6h)。研究人员发现这些DRN特异性基因在轴突末端、神经元投射末端和轴突终扣高度富集(图6l),它们专门释放神经递质以在神经元之间传递脉冲。另一种空间基因模式P10出现在腹侧被盖区和黑质子区域(图6h),包含基因Slc6a3、Slc18a2、Th等。这种空间基因模式对应于已识别的MBDOP2神经元(标记基因:Slc6a3和Chrna6),它们是中脑中的多巴胺能神经元,与神经精神疾病(如帕金森病)的遗传风险相关。进一步基于GO的富集结果表明,这些富集的基因可能参与神经递质水平的调控(图6l),揭示了MBDOP2基因表达之间的关系。此外,serval识别的空间基因模式并不代表特定的细胞类型,如P23(图6i)、P3(图6j)和P8(图 6k)。其中,P23高度富集于腹侧中脑的脚间核(interpeduncular nucleus,IPN)中,由几个GABAergic神经元相关基因(如Otp、Pax7、Gad1、Gad2、Slc32a)组成,表明其对抑制神经元的代表性作用;P3高度富集于同皮质中(6j),这表明已识别皮质锥体神经元(TEGLU,如图6e 所示),且在学习、记忆和认知方面显著丰富(图6l);P8参与阳性趋化性,主要由来自海马神经元DGGRC2和TEGLU23的基因构成(图6k)。

本研究中,研究人员开发出Spatial-ID ,并以分子方式注释了SRT数据集的细胞类型。研究人员选用4个具有不同特征的公开SRT数据集,通过比较根据预测和ground truth计算的准确性和加权F1分数,发现在基准分析中,Spatial-ID的性能优于目前最优的细胞注释方法。与DNN的结果相比,确认空间信息在Spatial-ID中发挥重要作用。此外,Spatial-ID对基于3D FISH的SRT数据集(即小鼠下丘脑视前区)的分析,显示出其更好的性能,进一步证实该方法可以有效地应用于3D SRT数据集的细胞类型注释;基于FISH的SRT数据集(即小鼠初级运动皮层)的随机基因丢失模拟的比较,证明了Spatial-ID对基因丢失变化的较好稳健性。

与基于相关性的方法(Seurat v3、SingleR、Scmap和Cell-ID)和集成方法(Tangram、Cell2location )相比,Spatial-ID在所有SRT数据集上的运行效率更快。更重要的是,Spatial-ID在Stereo-seq测量的大视野小鼠大脑半球数据集中的应用,展示了其在构建大视野空间转录组脑图谱中的应用前景。

Spatial-ID算法可在如下链接获取:

https://doi.org/10.5281/zenodo.7315186

或 

https://github.com/TencentAILabHealthcare/spatialID

参考文献

Shen, R., Liu, L., Wu, Z. et al. Spatial-ID: a cell typing method for spatially resolved transcriptomics via transfer learning and spatial embedding. Nat Commun 13, 7640 (2022). https://doi.org/10.1038/s41467-022-35288-0

本文转载于网络 如有侵权请联系删除

相关文章

  • ❤『面试知识集锦100篇』1.面试技巧篇丨HR的小心思,你真的懂吗?

    作者:不吃西红柿简介:CSDN博客专家、蓝桥签约作者、大数据&Python领域优质创作者。目录一、企业考察要点技巧一:了解自己的专业技能与JD中的匹配点技巧二、把控好企业「味道」技巧三、精彩的自我介绍技巧四、常见问题回答二、经典面试问题【先总后分】依据面试的时间线——面试前的准备、面试中的回答、面试后的注意事项,结合专业性、价值观、稳定性、性价比这四点,提出了能够逆转局面的面试技巧。1.体现专业性,你需要在面试前清晰地了解自己的专业技能与JD中的匹配点。2.传递价值观,在面试开始前把控企业的「味道」,面试过程中通过自我介绍中的回答突显个人价值观,但切记不要刻意为了迎合扭曲自己的答案。3.表现稳定性,面试官问答中的「离职原因」「住所的远近」都是在考核稳定性,对于离职要避免给出抱怨性回答,对于住所远近要依据情况给出解决方案。4.关于性价比,到了谈薪酬的环节,可以通过报底价+20%,并明确专业性和未来发展潜力,得到一个理想的薪酬结果。一、企业考察要点企业通过面试考察的,不仅仅是专业技能这一个点,还有另外三点,价值观、稳定性、性价比。而面对这四点,你是可以通过一些面试技巧来达到逆转局面

  • 独家 | 理解和管理社交媒体算法的4个想法

    作者:VeronicaCombs 翻译:赵茹萱校对:郑强本文约3700字,建议阅读10+分钟没有单一的解决方案能够让所有社交媒体算法都更加易于分析和理解。复制试想一下,如果科技公司必须公布有关算法如何工作的数据,而软件工程师在高等教育时期必须学习社会科学课程,那将会发生什么?麻省理工学院斯隆管理学院(MITSloanSchoolofManagement)教授埃克尔斯(DeanEckles)(左上)与斯坦福大学(StanfordUniversity)平台监管主任达芙妮·凯勒(DaphneKeller)和沃顿商学院(WhartonUniversity)商业人工智能主管卡提克·霍萨纳加(KartikHosanagar)就“如何让算法更加透明”进行了对话没有单一的解决方案能够让所有社交媒体算法都更加易于分析和理解。但是,拆解围绕着这个软件的黑盒子或许是一个不错的开始,让我们在这个黑盒子上戳几个洞吧。通过与独立分析师共享内容,也可以提高可解释性。周四,在麻省理工学院举行的社交媒体峰会上,研究人员、技术专家和法律学者讨论了如何启动这一过程。麻省理工学院数字经济倡议组织主持了从乌克兰战争、虚假信息到

  • 【第3版emWin教程】第29章 emWin6.x的XBF格式全字库生成和使用方法(Unicode编码,SPI Flash方案)

    教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429第29章emWin6.x的XBF格式全字库生成和使用方法(Unicode编码,SPIFlash方案)本章节为大家讲解XBF格式全字库的生成和使用方法。XBF格式字库可以存储到任何外部存储介质中,带不带文件系统都没有关系,且XBF格式字体支持抗锯齿效果,显示大字体的时候效果非常棒。XBF格式字体也是用FontCvt生成的,编码为Unicode。本章节以SPIFlash为例给大家进行讲解(SPIFlash就是SPI接口的Flash存储芯片)。29.1初学者重要提示29.2下载算法存放位置(操作前必看)29.3XBF格式字体生成方法29.4不同XBF格式字体的合并方法29.5XBF格式字体使用方法29.6内部Flash和SPIFlash程序调试下载配置(重要必看)29.7实验例程说明(RTOS)29.8实验例程说明(裸机)29.9总结29.1初学者重要提示1、字体小工具需要使用此贴提供的,其它大部分是Demo版本:http://www.armbbs.cn/fo

  • MySQL UPDATE 查询--Java免费学习

    如果我们需要修改或更新MySQL中的数据,我们可以使用SQLUPDATE命令来操作。.语法以下是UPDATE命令修改MySQL数据表数据的通用SQL语法:UPDATEtable_nameSETfield1=new-value1,field2=new-value2 [WHEREClause]复制你可以同时更新一个或多个字段。你可以在WHERE子句中指定任何条件。你可以在一个单独表中同时更新数据。当你需要更新数据表中指定行的数据时WHERE子句是非常有用的。实例以下实例将更新数据表中tutorial_id为3的tutorial_title字段值:root@host#mysql-uroot-ppassword; Enterpassword:******* mysql>useTUTORIALS; Databasechanged mysql>UPDATEtutorials_tbl ->SETtutorial_title='LearningJAVA' ->WHEREtutorial_id=3; QueryOK,1rowaffected(0.04sec)

  • “四川天府健康通”上线仅两周,访问次数破 5 亿

    上线仅两周,“四川天府健康通”已经成为在川人员了解疫情防控情况、出入公共场所的重要工具,其离线码功能也极大的方便了数百万在川老人、儿童的日常出行。日前,在地铁车站,一名老人因无法出示健康码被挡在进站口外。而过去一年,类似的事件频频发生,也引起了社会对老人、儿童等特殊人群的出行关注。四川作为一个65岁及以上常住人口比例超14%的省份,更需要在保证疫情防控力度的同时,兼顾老年人便利出行。关注老幼问题点赞离线码功能“四川天府健康通”在升级发布之初就设置了家庭健康码,方便亲属代为申领。并提供了离线码功能,小程序可以在线生成“离线健康码”并下载、打印,老人、儿童可以随身携带,在7天有效期内使用。自1月11日上线以来,“四川天府健康通”微信小程序累计访问次数4.8亿次,用户数已超4000万。离线码功能也累积访问次数超250万,近200万的老人、儿童凭借离线码的申领,提高出行效率。王大爷家住四川绵阳我儿子给我买了手机,也教了我怎么用健康码,但一出门就忘记,每次乘车都要拜托年轻人帮我操作。现在,我出门只要带着纸质版的离线码,出示之后就能正常出行,十分方便。此外,离线码还具有防伪功能,可以通过扫一扫功能

  • HDFS权限问题以及伪造用户(11)

    之前在谈到HDFS常用命令的时候,说过hdfs的文件权限验证与linux系统的类似,但hdfs的文件权限需要开启之后才生效,否则在HDFS中设置权限将不具有任何意义!而在设置了权限之后,正常的HDFS操作可能受阻,这种情况下我们就需要伪造用户!本篇博客,小菌将为大家带来关于HDFS权限问题以及伪造用户的相关内容!首先我们需要先停止集群,在node01机器上执行以下命令cd/export/servers/hadoop-2.6.0-cdh5.14.0 sbin/stop-dfs.sh复制然后修改node01机器上的hdfs-site当中的配置文件cd/export/servers/hadoop-2.6.0-cdh5.14.0/etc/hadoop vimhdfs-site.xml复制往其中添加如下内容:<property> <name>dfs.permissions</name> <value>true</value> </property>复制修改完成之后配置文件发送到其他的机器上去scphdfs-site.xmln

  • SQL语句查询出的数据进行字符串拼接,oracle批量删除数据库用户实例演示

    通过dba_users表可以查询出所有的数据库用户,我下面筛选了所有HR开头的数据库用户,要把他们都删掉。selectusernamefromdba_userswhereusernamelike'HR%'orderbycreatedasc;复制||符号可以连接字符串还有查出来的数据,删除用户的数据库语句是dropuserxxxcascade,通过字符串拼接可以直接生成我要批量删除的数据库用户语句。select'dropuser'||username||'cascade;' fromdba_userswhereusernamelike'HR%'orderbycreatedasc;复制效果图1: 效果图2: 我直接把结果copy出来执行即可。

  • 了不起的 Deno 实战教程

    创建了一个“重学TypeScript”的微信群,想加群的小伙伴,加我微信“semlinker”,备注重学TS。一、Oak简介相信接触过Node.js的读者对Express、Hapi、Koa这些Web应用开发框架都不会陌生,在Deno平台中如果你也想做Web应用开发,可以考虑直接使用以下现成的框架:deno-drash:ARESTmicroframeworkforDenowithzerodependencies。deno-express:NodeExpresswayforDeno。oak:AmiddlewareframeworkforDeno’snetserver?。pogo:ServerframeworkforDeno。servest:?AprogressivehttpserverforDeno?。写作本文时,目前Star数最高的项目是Oak,加上我的一个Star,刚好720。下面我们来简单介绍一下Oak:AmiddlewareframeworkforDeno’shttpserver,includingaroutermiddleware. Thismiddlewareframework

  • 【Java调优】MysqlIO.readFully问题排查分析过程

    问题描述支付清结算系统"外部对账"部分任务在早上6:00~7:00时间段内对账速度缓慢,且经常造成对账统计结果不准确问题,导致结转记账不准确。初步分析及处理过程由于外部对账是经过性能优化的,且在压测环境表现良好,所以最开始初步认为是由于数据库性能瓶颈导致,初步处理方式为将线上6:00~7:00之前的慢SQL进行了一番排查,并对涉及外部系统的慢SQL进行了优化,这个步骤理论上是可以解决此类问题,但RDS(阿里云Mysql可能存在慢SQL统计不准确问题)。特点时间段内线程栈分析特定时间段线程栈分析,由于SQL优化部分并没有解决此类问题,为了查看在早上6:00~7:00这个时间段内程序JVM内部到底发生了什么,所以采取了定时抓取线程栈日志的手段(具体方式为在Linux服务器添加cron任务,并累计输出日志的方式,脚本如?)。#clearjstack.sh#!/bin/sh DATE='/bin/date' timestamp(){ $DATE+'%Y-%m-%d%H:%M:%S' } ts=`timestamp` echo"

  • 云端防火墙

    在过去几年中,云计算平台和服务已经走过了漫长的道路。2010年,云产业论坛(CIF)发现,只有48%的英国组织有意识地使用了云服务。目前这一数字升至84%,超过78%的用户使用了两种或更多云服务。 通过将数据迁移到云端可以实现许多好处,大多数组织开始意识到其潜力也就不足为奇了。然而,特别是对于公共云端服务来说,关键的问题仍然是安全性。在大多数情况下,云端服务供应商已经关注到网络硬件的安全性,但是他们实施复杂的安全解决方案的速度较慢,这些解决方案在应用层提供保护。缺乏应用层支持会在某种程度上暴露租户,如果他们将数据驱动的应用程序放置在云虚拟机中。 云端安全面临的难题 通常来说,你在物理数据中心面临的任何威胁都将出现在基于云的中心。但在基于云的中心,两者之间的远程链接的复杂性增加,缺乏直接所有权和控制权。因此,当你将应用程序扩展到云端时,你也在扩展自己的身份、网络和访问控制、信息保护和端点安全性概念。 例如,对于MicrosoftAzure的租户,有许多安全控制可以保护基础设施、云fabric、hypervisors(一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和

  • 【干货】如何快速高效调试机器学习系统?

    【新智元导读】机器学习的“难”通常不在于数学,因为机器学习本身不需要很高强度的数学计算,而在于debugging难的问题。机器学习debug要比普通计算机程序难得多:出现问题的情形多,而且调试周期长。本文深入讨论了这个难题,提出了在debug时需要注意的要点。在过去的几年里,机器学习便捷化方面的技术已经取得了显著的发展:出现了很多相关的网络在线课程、精编书籍和架构理论。这些精编课程对前沿科技研究分析,分解成通俗易懂的语言。而架构理论方面则将普通问题抽象化,与构建机器学习系统相结合形成理论系统。这些发展某种程度上能够使人们打破已有的认知图示,加强对算法工作原理和计算代码的理解。机器学习之难在于debug尽管如此,机器学习仍是一个相对“难”的问题。毫无疑问,提高机器学习算法是一项艰难的科研课题,需要不断的创新、反复的试验、不懈的韧性。而将现有算法和模式与机器学习贯通运用则更难,这也解释了为什么机器学习方面的专业工程师的工资相比普通软件工程师要高出很多的原因。这里的难通常不在于数学计算,机器学习应用本身不需要高强度的数学计算,而在于前面提到的构建系统,包括如何为工具建立图式以解决实际应用中的

  • 数据可视化的7个好处

    译者注:大量研究结果表明人类通过图形获取信息的速度比通过阅读文字获取信息的速度要快很多,那么将数字以可视化的形式展示出来还有其它什么好处,本文详细列举了7种优势。以下为译文。数据可视化是指以饼状图等图形的方式展示数据。这帮助用户能够更快地识别模式。交互式可视化能够让决策者深入了解细节层次。这种展示方式的改变使得用户可以查看分析背后的事实。以下是数据可视化影响企业做决策和战略调整的七种方式。1.动作更快人脑对视觉信息的处理要比书面信息容易得多。使用图表来总结复杂的数据,可以确保对关系的理解要比那些混乱的报告或电子表格更快。这提供了一种非常清晰的沟通方式,使业务领导者能够更快地理解和处理他们的信息。大数据可视化工具可以提供实时信息,使利益相关者更容易对整个企业进行评估。对市场变化更快的调整和对新机会的快速识别是每个行业的竞争优势。2.以建设性方式讨论结果向高级管理人员提交的许多业务报告都是规范化的文档,这些文档经常被静态表格和各种图表类型所夸大。也正是因为它制作的太过于详细了,以致于那些高管人员也没办法记住这些内容,因此对于他们来说是不需要看到太详细的信息。然而,来自大数据可视化工具的报告

  • 内核打补丁编译、创建内核工程(1)

    1  内核打补丁1.1 通过FTP将linux-2.6.22.6_jz2440.patch文件拷贝在system下1.2 进入linux-2.6.22.6目录下,使用 patch-p1<../linux-2.6.22.6_jz2440.patch 命令对linux-2.6.22.6文件进行打补丁。1.3 补丁成功后,在linux-2.6.22.6目录下便会有一个config_ok文件。1.4使用 tar-cjflinux-2.6.22.6_jz2440.tar.bz2 linux-2.6.22.6  将以打好补丁的linux-2.6.22.6文件以其它名字创建压缩包,方便以后再次使用,并放在Windows上建立sourcesight工程,方便解析代码。1.5 在linux-2.6.22.6目录下,使用cpconfig_ok .config将config_ok复制覆盖新的.config隐藏文件,不同的config文件,menuconfig都不同通过 ls-la命令可以查看.config隐藏文件1.6 在linux-2.6.22.6目录下,使用makeuImage指令生成内核映像uI

  • 谈谈前端面试经常遇到的一些题目

    代码输出结果varobj={ say:function(){ varf1=()=>{ console.log("1111",this); } f1(); }, pro:{ getPro:()=>{ console.log(this); } } } varo=obj.say; o(); obj.say(); obj.pro.getPro();复制输出结果:1111window对象 1111obj对象 window对象复制解析:o(),o是在全局执行的,而f1是箭头函数,它是没有绑定this的,它的this指向其父级的this,其父级say方法的this指向的是全局作用域,所以会打印出window;obj.say(),谁调用say,say的this就指向谁,所以此时this指向的是obj对象;obj.pro.getPro(),我们知道,箭头函数时不绑定this的,getPro处于pro中,而对象不构成单独的作用域,所以箭头的函数的this就指向了全局作用域window。什么是margin重叠问题?如何解决?问题描述:两个块级元素的上外边距和下外边距可能会合并

  • NLB网路负载均衡管理器详解

    序言 在上一篇配置iis负载均衡中我们使用啦微软的ARR,我在那篇文章也中提到了网站的高可用性,但是ARR只能做请求入口的消息分发服务,这样如果我们的消息分发服务器给down掉啦,那么做再多的应用服务集群也都枉然。 这篇文章我主要针对解决这一问题来做分析,引入NLB,相对于ARR来说,ARR算是应用级别的负载均衡方案,而NLB则是服务器级别的负载均衡方案。 如果微软的这两款方案我们结合起来使用,那便是微软高可用网站方案的天作之合啦。 ApplicationRequestRoute与NLB高可用方案的演进 先说ApplicationRequestRoute,他的具体实施方案,我已在我以前的文章中有描述,大家可以了解下,这里我配图做个简介。 ARR可以检测到你的iis应用是否可用,并对用户的请求实施负载均衡方案,根据我们配置的负载均衡算法,把用户的请求分发到应用服务器中。 但是,如果我们的ARR服务器down掉之后,我们的整个应用程序就无法使用,达不到24*7用不宕机的高可用要求。 下面配图为NLB的网路负载平衡方案 NLB可以最多可以配置32台服务器,这32台服务器通过拥有自己的独立

  • 项目演化系列--开篇

    回顾   上一篇分享的是基于SWFUpload的angular组件,由于项目初期工作繁忙,一直没有时间做分享。   这次打算分享的是从简单三层到分布式的web项目演变,虽然这类型的文章也不少,但是大多数都只是提供架构结构图,并作少量的解释,至于代码实现方面也是寥寥无几,如果想要从中学到一些技巧还是有些难度的。   只能通过公司项目的实践中才能窥探一二,但是如果公司的项目无法提供相应实践的条件,又或者公司的项目正处在一个尴尬的转型期内,对于架构的错误理解只会对项目的转型带来极大的危害,要么只能硬着头皮“复制、粘贴”重复编写相似的功能,要么推翻项目重新来过。 简介   使用的是C#语言来实现的,版本为3.5,而且是基于webform的,并不会使用现在流行的mvc来实现,主要意图是让各位理解一些项目组件的代码实现,以及如何通过重构将重复使用的代码提取到公用库当中,这样可以减少开发人员压力,减少代码的重复。   其中部分内容,我之前分享的文章中都会有提到,这次会结合起来使用,大项目都是靠这些零零碎碎、不起眼的功能组合起来的。   文章如下:     mvchandler(路由解析)     前

  • HTTP 协议

      老师博客:http://www.cnblogs.com/yuanchenqi/articles/6000358.html day49  

  • 如何高效睡眠

    最近,我看了《睡眠革命》一书,作者介绍了如何使用独创的R90睡眠法进行高效睡眠,颠覆了我以往对睡眠的认知。这本书是英超多个豪门球队(曼联、阿森纳等)特聘睡眠教练、前英国睡眠协会会长——利特尔黑儿斯写的。 下面是我整理的笔记内容。 遵守昼夜节律 图解:身体在晚上9点开始分泌褪黑素让我们产生睡眠冲动,凌晨2点左右的时候我们睡的最深。 睡眠质量最高的时间出现在凌晨2-3点。 如果你日出之后才去睡觉,你就违背了你的生物钟。 使用可穿戴设备了解你的睡眠数据。 打破要睡足8小时的误区 很多人有这个误区:晚上睡觉一定要睡足8小时。然而不同的人,或者同一个人在人生的不同阶段,所需要的睡眠时间都是不一样的。大部分14-17岁的青少年要睡8-10个小时,成年人只需要7-9小时就够了。真正对我们有影响的,并非睡眠不足,而是心理上的8小时负担。下面是作者举的一个例子: 你在黑暗中醒来。“我睡了多久了?”你在想。你起床,去洗手间。回来后看了看手机:3点07分。没事儿,还可以睡很久。如果现在马上睡着,那么到7点半闹钟叫醒你时,你仍然能睡上8个小时左右。明天对你来说很重要,你有许多工作要做,需要饱满的精神,

  • postgre索引

    1.创建一般索引 单字段索引: CREATEINDEXindex_nameONtable_name(field1); 联合索引: CREATEINDEXindex_nameONtable_name(field1,field2); 2.条件(部分)索引: CREATEINDEXindex_nameONtable_name(field1)WHEREfield1>100; 3.重建索引 REINDEXINDEXmy_index;复制  REINDEXTABLEmy_table;复制 REINDEXDATABASEbroken_db;复制

  • k8s学习目录

    目录 K8S基础部分 基础部分 5秒创建k8s集群[转] k8s核心功能[转] k8s重要概念[转] 部署k8sCluster(上)[转] 部署k8sCluster(下)【转】 Kubernetes架构(上)【转】 Kubernetes架构(下)【转】 通过例子理解k8s架构【转】 用Deployment运行应用【转】 k8s创建资源的两种方式【转】 读懂DeploymentYAML【转】 如何ScaleUp/DownDeployment?【转】 k8s如何Failover? 用label控制Pod的位置 DaemonSet典型应用场景【转】 DaemonSet案例分析 运行自己的DaemonSet【转】 用k8s运行一次性任务【转】 Job失败了怎么办?【转】 并行执行Job【转】 定时执行Job【转】 通过Service访问Pod【转】 ServiceIP原理【转】 DNS访问Service【转】 外网如何访问Service?【转】 RollingUpdate【转】 回滚【转】 HealthCheck【转】 Liveness探测【转】 Readiness探测【转】 在ScaleUp

  • Android bp语法介绍

    参考网址: http://note.qidong.name/demo/soong_build/   谷歌官网文档: https://android.googlesource.com/platform/build/soong

相关推荐

推荐阅读