空间转录组 多样本整合分析—stlearn

大家好,今天介绍一款空间转录组整合分析的python软件——stlearn。

如果你还不会安装,可以看下之前的推文,windows系统本地安装stlearn:本地安装jupyterlab,并创建conda小环境——以空间转录组细胞互作之stlearn安装为例如果大家感兴趣,后期再写Linux服务器安装stlearn的教程。下面从三个方面进行stlearn的空间转录组整合分析。

  • 1. 为什么空间转录数据需要整合分析?

  • 2. stlearn整合空间转录组样本的思路

  • 3. stlearn整合空转数据代码实战

提出问题

1.为什么空转数据需要整合分析?

  • 提高数据分析的准确性和可靠性:空转数据通常具有较高的噪声和异质性,整合分析可以通过融合来自不同来源的数据来提高数据的准确性和可靠性。

  • 发现新的生物学信息:空转数据整合分析可以帮助发现新的生物学信息,例如细胞类型之间的相互作用、基因表达的空间模式等。

通常10x的空转测序数据都是4张slide为一组,因此我们大概率会用到多个空转样本的整合分析。那么如何进行多个样本的空转数据的整合分析呢?

注意:这里的整合不是单细胞和空间转录组整合,而是多个空间转录组测序样本的整合


解决问题思路

  1. 先把多个样本merge到一起之后;

  2. 然后使用harmony去除批次效应,降维聚类分群;

  3. 进而得到每个细胞(barcode)的亚群;

  4. 最后把每个细胞的亚群信息放回单个样本中。

代码实战

https://stlearn.readthedocs.io/en/latest/tutorials/Integration_multiple_datasets.html

import stlearn as stimport scanpy as scimport numpy as npst.settings.set_figure_params(dpi=150)  # 设置图形输出分辨率1 #数据处理# 连接两个样品adata_concat = block1.concatenate(block2)# 预处理# 过滤基因:过滤表达细胞少于 3 个的基因sc.pp.filter_genes(adata_concat, min_cells=3)# 归一化数据sc.pp.normalize_total(adata_concat, target_sum=1e4)# 对数转换sc.pp.log1p(adata_concat)# 保存原始数据adata_concat.raw = adata_concat.copy()# 提取高变异基因sc.pp.highly_variable_genes(adata_concat, min_mean=0.0125, max_mean=3, min_disp=0.5)adata_concat = adata_concat[:, adata_concat.var.highly_variable]# 缩放数据sc.pp.scale(adata_concat, max_value=10)# 降维:主成分分析(PCA)sc.pp.pca(adata_concat, n_comps=30, svd_solver='arpack')

2 #整合分析:Harmony# 准备元数据和 PCA 结果meta_data = adata_concat.obs  # 获取观察表(cell metadata)data_mat = adata_concat.obsm["X_pca"]  # 获取 PCA 降维后数据# 导入并运行 Harmonyimport harmonypy as hmho = hm.run_harmony(data_mat, meta_data, "batch")  # 运行 Harmony,根据 "batch" 列进行批次校正3 # 将结果映射回 AnnData 对象adata_concat.obsm["X_pca"] = ho.Z_corr.T  # 将校正后的数据替换原 PCA 数据Use code with caution. Learn more4 #聚类和可视化# 建立 KNN 图并运行 UMAPsc.pp.neighbors(adata_concat, n_pcs =30)sc.tl.umap(adata_concat)# Leiden 聚类sc.tl.leiden(adata_concat, resolution=0.4)# UMAP 可视化sc.pl.umap(adata_concat, color=["batch","leiden"])  # 同时以批次和聚类结果着色Use code with caution. Learn more

5 映射结果回原始样本st.settings.set_figure_params(dpi=150)# 将 Leiden 聚类结果映射回分块 A 第 1 个样品block1.obs["leiden"] = adata_concat.obs[adata_concat.obs.batch=="0"].leiden.values  # 根据 "batch" 列选择对应样品的数据# 绘制聚类结果st.pl.cluster_plot(block1,use_label="leiden")# 将 Leiden 聚类结果映射回分块 A 第 2 个样品block2.obs["leiden"] = adata_concat.obs[adata_concat.obs.batch=="1"].leiden.values# 绘制聚类结果st.pl.cluster_plot(block2,use_label="leiden")# 手动合并图像并调整坐标# 这是将两个样品放在同一个 AnnData 对象中的方法# 初始化空间信息adata_concat.uns["spatial"] = block1.uns["spatial"]# 水平拼接两个样品的高分辨率图像combined = np.hstack([block1.uns["spatial"]["V1_Breast_Cancer_Block_A_Section_1"]["images"]["hires"],                      block2.uns["spatial"]["V1_Breast_Cancer_Block_A_Section_2"]["images"]["hires"]])# 将拼接后的图像映射到合并的 AnnData 对象

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/257720.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式——0前言目录

1 设计模式介绍 应当站在产品经理的角度来学习设计模式 是软件设计中常见问题的典型解决方案,可用于解决代码中反复出现的设计问题 学习效果一般的原因在于自己没有站在产品经理的角度学习,仅仅是为了学习怎么实现,用什么算法实现。 分类&…

telnet的交互原理(wireshark分析)

telnet的交互原理(wireshark篇) telnet的协议类型是tcp,他的密钥用的是明文的,容易被捕获,所以后来的windows基本弃用了telnet服务端但依然保留了客户端。 下面是他的交互抓包: 这里面的前三条运用的是tc…

一种基于外观-运动语义表示一致性的视频异常检测框架 论文阅读

A VIDEO ANOMALY DETECTION FRAMEWORK BASED ON APPEARANCE-MOTION SEMANTICS REPRESENTATION CONSISTENCY 论文阅读 ABSTRACT1. INTRODUCTION2. PROPOSED METHOD3. EXPERIMENTAL RESULTS4. CONCLUSION阅读总结: 论文标题:A VIDEO ANOMALY DETECTION FRA…

【工作流Activiti】MyActivit的maven项目

1、Idea新建一个项目MyActivit的maven项目 2、安装插件 在 idea 里面&#xff0c;activiti 的插件叫 actiBPM&#xff0c;在插件库里面把它安装好&#xff0c;重启 idea 就行了。 3、 maven 项目中&#xff0c;并更改 pom.xml。pom 中依赖如下&#xff1a; <?xml version…

IntelliJ IDE 插件开发 | (三)消息通知与事件监听

系列文章 IntelliJ IDE 插件开发 |&#xff08;一&#xff09;快速入门IntelliJ IDE 插件开发 |&#xff08;二&#xff09;UI 界面与数据持久化IntelliJ IDE 插件开发 |&#xff08;三&#xff09;消息通知与事件监听 前言 在前两篇文章中讲解了关于插件开发的基础知识&…

【数据结构】二叉树的模拟实现

前言:前面我们学习了堆的模拟实现&#xff0c;今天我们来进一步学习二叉树&#xff0c;当然了内容肯定是越来越难的&#xff0c;各位我们一起努力&#xff01; &#x1f496; 博主CSDN主页:卫卫卫的个人主页 &#x1f49e; &#x1f449; 专栏分类:数据结构 &#x1f448; &…

14 v-model绑定输入框

概述 v-model用于实现双向数据绑定&#xff0c;使用v-model绑定输入框是Vue3中最常见的用法之一。 比如&#xff0c;在制作登录界面的时候&#xff0c;我们会使用v-model绑定用户名和密码&#xff0c;这里的用户名和密码都是输入框。 基本用法 我们创建src/components/Demo…

nodejs+vue+微信小程序+python+PHP影片数据爬取与数据分析-计算机毕业设计推荐

管理页面&#xff1a;管理员和用户都可以登录。通过输入账号和密码后&#xff0c;校验无误后方可进入对应的主界面&#xff0c;管理员可对用户使用的权限管理&#xff0c;以及对网站信息进行管理[9]。  影片数据爬取与数据分析分为两个部分&#xff0c;即管理员和用户。该系统…

C/C++编程中的算法实现技巧与案例分析

C/C编程语言因其高效、灵活和底层的特性&#xff0c;被广大开发者用于实现各种复杂算法。本文将通过10个具体的算法案例&#xff0c;详细探讨C/C在算法实现中的技巧和应用。 一、冒泡排序&#xff08;Bubble Sort&#xff09; 冒泡排序&#xff08;Bubble Sort&#xff09;是一…

[Toolschain cpp ros cmakelist python vscode] 记录写每次项目重复的设置和配置 不断更新

写在前面 用以前的设置&#xff0c;快速配置项目&#xff0c;以防长久不用忘记&#xff0c;部分资料在资源文件里还没有整理 outline cmakelist 复用vscode 找到头文件vscode debug现有代码直接关联远端gitros杂记repo 杂记glog杂记 cmakelist 复用 包含了根据系统路径找库…

各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录(SSO)系统

各种不同语言分别整理的拿来开箱即用的8个开源免费单点登录&#xff08;SSO&#xff09;系统。 单点登录&#xff08;SSO&#xff09;是一个登录服务层&#xff0c;通过一次登录访问多个应用。使用SSO服务可以提高多系统使用的用户体验和安全性&#xff0c;用户不必记忆多个密…

学习Java第74天,Ajax简介

什么是ajax AJAX Asynchronous JavaScript and XML&#xff08;异步的 JavaScript 和 XML&#xff09;。 AJAX 不是新的编程语言&#xff0c;而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下&#xff0c;可以与服务器交换数据并更新部分网页…

限流原理与实践:固定窗口、滑动窗口、漏桶与令牌桶解析

方案一、固定窗口限流算法 这里我们通过一个 demo 来介绍固定窗口限流算法。 创建一个 FixWindowRateLimiterService 类。 Service public class FixWindowRateLimiterService {Resourceprivate StringRedisTemplate stringRedisTemplate;private static final DefaultRedisSc…

HCIP —— BGP 基础实验

实验拓扑&#xff1a; 实验要求&#xff1a; 1.所有设备上均有环回接口 2.R1属于AS 100 &#xff0c;R2-R4 属于AS 200 &#xff0c;R5 属于AS 300 3.R2 - R4 属于同一个area &#xff0c;运行OSPF。 4.全网通过运行BGP实现网络互通。 实验步骤&#xff1a; 1.配置 IP地址…

Node.js使用Express框架写服务端接口时,如何将接口拆分到不同文件中

项目目录结构说明&#xff1a; node.js连接mysql数据库步骤可参考&#xff1a;Node.js 连接 MySQL | 菜鸟教程 1、拆分之前的写法&#xff0c;未区分模块&#xff0c;所有接口api都写在了入口文件app.js中&#xff1b; 需求&#xff1a;想要将接口api拆分成根据不同的业务模块…

window10下载与安装zookeeper,图文说明

1&#xff0c;下载 打开连接 &#xff1b;https://downloads.apache.org/zookeeper/ 选择版本下载 2&#xff0c;解压 cmd黑窗口解压命令 tar -zxvf apache-zookeeper-3.8.3-bin3&#xff0c;修改配置 复制zoo_sample.cfg&#xff0c;重命名为zoo.cfg zoo.cfg配置 # The …

操作系统系列:Unix进程系统调用fork,wait,exec

操作系统系列&#xff1a;Unix进程系统调用 fork系统调用fork()运用的小练习 wait系统调用Zombiesexec 系列系统调用 开发者可以查看创建新进程的系统调用&#xff0c;这个模块会讨论与进程相关的Unix系统调用&#xff0c;下一个模块会讨论Win32 APIs相关的进程。 fork系统调用…

uniapp-安卓APP开发时使用手机调试

调试 1. 手机打开开发者模式: 华为手机举列-->设置-->关于手机-->版本号&#xff0c;多次连续点击“版本号”&#xff0c;就会提示已打开开发者模式 2. 华为手机举列-->设置-->系统和更新-->开发人员选项-->打开 USB调试&#xff0c;进入调试模式 3. 先…

硬件基础--实施运维工程师介绍

1.实施运维工程师介绍 1.1 什么是实施工程师 1.2 是实施工程师的职责 1.3 什么是运维工程师&#xff1f; 1.4 运维工程师的职责 1.5 实施运维的主要技能 2.计算机组件 3.BIOS介绍 ​编辑 4.总结 1.实施运维工程师介绍 1.1 什么是实施工程师 常用操作系统、应用软件及公…

scrapy快加构造并发送请求

scrapy数据建模与请求 学习目标&#xff1a; 应用 在scrapy项目中进行建模应用 构造Request对象&#xff0c;并发送请求应用 利用meta参数在不同的解析函数中传递数据 1. 数据建模 通常在做项目的过程中&#xff0c;在items.py中进行数据建模 1.1 为什么建模 定义item即提前…