1.如何修改seruat对象的行名 2.FeaturePlot如何把所有阳性表达的spot放到图的前面

news2025/2/23 3:16:10

本有解决标题中的两个问题

1.答案是修改不了,不如重新制作一个seurat对象。

试图使用rownames(obj)=featurenames是不成功的

记录 客户需求遇到一个问题:作者提供的rds文件行名为ensemble id,如何改成gene symbol。

作者提供的rds文件如下所示

图片

同时发现,作者也提供了相对应的gene symbol

图片

如果直接使用作者提供的rds文件画图的话

FeaturePlot(All.merge,features = "ENSG00000177613")

图片

如何把行名改为gene symbol呢?


去github发现,有人提供了一个RenameGenesSeurat函数

#https://github.com/satijalab/seurat/issues/757

#https://github.com/satijalab/seurat/issues/235

仔细阅读该函数,发现本质就是把counts@Dimnames[[1]] 和data@Dimnames[[1]] 还应该有scale.data@Dimnames[[1]] 的名字改为gennesymbol

这里我把scale.data@Dimnames[[1]]注释掉,是因为我这个rds文件中的scale.data为空值,否则会报错的

RenameGenesSeurat <- function(obj = ls.Seurat[[i]], newnames = HGNC.updated[[i]]$Suggested.Symbol) { # Replace gene names in different slots of a Seurat object. Run this before integration. Run this before integration. It only changes obj@assays$RNA@counts, @data and @scale.data.  print("Run this before integration. It only changes obj@assays$RNA@counts, @data and @scale.data.")  RNA <- obj@assays$RNA
  if (nrow(RNA) == length(newnames)) {    print("ensemble_id length=genesybol length")    if (length(RNA@counts)) RNA@counts@Dimnames[[1]]            <- newnames    if (length(RNA@data)) RNA@data@Dimnames[[1]]                <- newnames    # if (length(RNA@scale.data)) RNA@scale.data@Dimnames[[1]]    <- newnames  } else {"Unequal gene sets: nrow(RNA) != nrow(newnames)"}  obj@assays$RNA <- RNA  return(obj)}
subset_data=RenameGenesSeurat(obj = subset_data,          newnames = subset_data@assays$RNA@meta.features$feature_name)

这样的话就把gene symbol改成功了

图片

但是

如果你运行FindMarkers或者findallmakers函数的话,还是会报错的。应该是因为FindMarkers运行时候,需要使用rownames,而我们的rownames此时在不同的slot中可能是不一样的。

所以呀

对于这种rds文件,开始先别改行名,全部用自带的ensemble id。可视化的时候再使用RenameGenesSeurat函数修改基因。

否则,会一直报错到怀疑人生。

其实,最好的办法,可能是把count提取出来,自己制作rds文件,这样就不会有各种报错啦。

在最开始的时候,就把可能报错的小火苗掐灭。

图片

==================

FeaturePlot个性化需求,如何把所有阳性表达的spot放到图的前面

常规画图的话Seurat::FeaturePlot(object=All.merge, features="GAPDH", 
                    label = T,raster=FALSE,repel = T,
                    split.by = "group" )

图片

ACTB好像齐一点???

图片

所有阳性表达的spot放到图的前面,结果和方法如下,其实就是对细胞进行重新排个序

图片

#https://github.com/satijalab/seurat/issues/757#https://github.com/satijalab/seurat/issues/235##################gene plot_bring the postitive dots to the fronts# First, the usual command to make the feature plots and return the ggplot2 objectsfp <- Seurat::FeaturePlot(object=All.merge, features="GAPDH",                           label = T,raster=FALSE,repel = T,                          split.by = "group" )fp[[1]]$data$GAPDH# Here, fp is a list of objects, one per feature plot
# Then, re-order the "data" dataframe in increasing order of gene expressionsfor (i in 1){  fp[[i]]$data <- fp[[i]]$data[order(fp[[i]]$data$GAPDH),]}fp
可以看到两个方法 视觉差异还是挺大的

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决hbuilder使用android studio模拟器不能热更新

hbuilder使用android studio模拟器编&#xff0c;在编写代码时&#xff0c;不能热更新&#xff0c;总是需要重启虚拟机中的程序&#xff0c;hbuilderx的版本是3.1.22&#xff0c;android studio的版本是4.2.2 同时在hbuilderx中出现如下报错信息&#xff1a; 报错信息&#x…

ASP产品通过网络安全专用产品安全认证

什么是网络安全专用产品安全检测&#xff1f; 网络安全专用产品安全检测是指对网络关键设备和网络安全专用产品进行安全性评估和检测&#xff0c;以确保其符合相关标准和法规的要求&#xff0c;能够有效地抵御网络攻击和威胁。该检测由具备资格的机构进行&#xff0c;采用认证…

禁止指定电脑程序运行的2种方法

你可能要问了&#xff0c;为什么要禁止电脑程序运行呢&#xff0c;因为有的公司要净化公司的工作环境&#xff0c;防止某些刺头员工在公司电脑上瞎搞。也有部分家长&#xff0c;是为了防止自己家的孩子利用电脑乱下载东西。 今天就分享2种禁止指定电脑程序运行的方法&#xff1…

C语言SO EASY(ZZULIOJ1220: SO EASY)

题目描述 Superbin最近在研究初等数论&#xff0c;初等数论 是研究数的规律&#xff0c;特别是整数性质的数学分支。它是数论的一个最古老的分支。它以算术方法为主要研究方法&#xff0c;主要内容有整数的整除理论、同余理论、连分数理论和某些特殊不定方程。 是定义在正整数…

【DP】mobiusp正在创作乐曲

输入样例1&#xff1a; 5 2 1 7 7 1 3 输出样例1&#xff1a; 2 输入样例2&#xff1a; 10 3 2 5 6 4 4 5 7 3 5 6 输出样例2&#xff1a; 1 #include<iostream> #include<cstring> #include<algorithm> #include<vector> using namespace std; typede…

遥遥领先!TinyEngine 低代码引擎更新升级!AI 已成功部署!

官网更新 1. 协议规范优化更新 协议规范交互优化&#xff0c;能够在一页里面自由切换&#xff0c;提高用户体验&#xff0c;后端SDK文档字段描述补齐&#xff0c;助力开发者自助进行服务端开发。 2.使用手册全新改版 去掉之前的学院课程&#xff0c;新设计新分类让结构一目了…

【云备份】文件操作实用工具类设计

文章目录 为什么要单独设计文件工具类&#xff1f;整体实现Filesize ——文件大小stat接口 LastMTime ——最后一次修改时间LastATime —— 最后一次访问时间FileName —— 文件名称GetPostLen ——获取文件指定位置 指定长度的数据GetContnet —— 读取文件数据SetContent ——…

文献速递:人工智能在新生儿重症监护室:现在是时候了

人工智能在新生儿重症监护室&#xff1a;现在是时候了 01 文献速递介绍 文章介绍了AI的多学科特性&#xff0c;包括计算机科学、数学、神经科学和哲学。AI的目标是通过各种计算和算法技术创建智能机器。尽管早期对人类水平AI的预测未能实现&#xff0c;但对AI的期待仍然强烈…

图书馆管理系统源码(Java)

Book包->内含Book类与BookList类 Book类 用于初始化图书并对其进行操作 BookList类 用于存放多本图书 Book类 package Book;public class Book {private String name;private String author;private int price;private String type;private boolean isBorrow;//写一个…

10.打印楼梯图案和笑脸【2023.11.25】

1.问题描述 打印楼梯图案和笑脸 2.解决思路 3.代码实现 #include<stdio.h> int main(){printf("11\n");for(int i0;i<10;i){for(int j0;j<i;j){printf("FF"); }printf("\n");} return 0; }4.运行结果

Java研学-异常

一 异常 异于正常状态的显示,即控制台显示结果与预期的不一致 // 抛出异常java.lang.ArrayIndexOutOfBoundsException int[] nums new int[2]; System.out.print(nums[2]);二 异常分类 1 检测性异常:有称为非运行时异常,一般是在编写代码的过程中编程软件直接报错 2 非检测…

用Python写的自动答题脚本,正确率99%,刷课必备

咱们上学的时候&#xff0c;有些课程&#xff0c;不是很重要所以没去看&#xff0c;但是又要刷题&#xff0c;这时候&#xff0c;自动答题脚本就很关键&#xff0c;全程全自动&#xff0c;正确率还嘎嘎高&#xff01; 所以咱们今天来用Python写一个自动答题脚本&#xff0c;正…

图的建立基本操作

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> // 添加头文件#define MAX_VERTEX_NUM 100 //图中最大顶点数//struct ArcNode* nextarc; //ArcNode* firstarc; //这两个是很有必要的&#xff0c;如果你没有这两个指针&#xff0c;你就无法判…

2.前端--HTML标签1【2023.11.25】

1.基本语法规范 HTML 标签是由尖括号包围的关键词&#xff0c;例如 <html>。HTML 标签通常是成对出现的&#xff0c;例如 和 &#xff0c;我们称为双标签。有些特殊的标签必须是单个标签&#xff08;极少情况&#xff09;&#xff0c;例如 <br />我们称为单标签。 …

2022年12月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 默认小猫角色和气球角色都是显示状态,小猫程序如下图所示,气球没有程序,点击绿旗,舞台上最终显示的效果是?( ) A:可能出现6个不同位置的小猫和6个小球 B:可能出现6个不同位…

Python基于jieba+wordcloud实现文本分词、词频统计、条形图绘制及不同主题的词云图绘制

目录 序言&#xff1a;第三方库及所需材料函数模块介绍分词词频统计条形图绘制词云绘制主函数 效果预览全部代码 序言&#xff1a;第三方库及所需材料 编程语言&#xff1a;Python3.9。 编程环境&#xff1a;Anaconda3&#xff0c;Spyder5。 使用到的主要第三方库&#xff1a;…

P12 C++静态关键字static

目录 01 前言 02 静态变量static 03 extern关键字 04 静态函数 最后的话 01 前言 static 关键字在 C 中有两个意思&#xff0c;这个取决于上下文。 第一种情况是在类或结构体外部使用 static 关键字&#xff0c;另一种是在类或者结构体内部使用 static。 类外面的 static…

vscode运行c++程序如何支持c++11

参考https://zhuanlan.zhihu.com/p/269244754 更改setting.json文件

[环境配置]vscode免密ssh的设置流程

测试环境&#xff1a; windows 11 ubuntu16.04 vmware 第一步&#xff1a;生成密钥 cmd打开输入&#xff1a;ssh-keygen -t rsa 一路回车后可以在C:\Users\用户名\.ssh路径看到id_rsa.pub&#xff0c;我们打开这个文件&#xff0c;用记事本打开即可&#xff0c;然后复制里…

二十一、数组(6)

本章概要 数组排序Arrays.sort的使用并行排序binarySearch二分查找parallelPrefix并行前缀 数组排序 根据对象的实际类型执行比较排序。一种方法是为不同的类型编写对应的排序方法&#xff0c;但是这样的代码不能复用。 编程设计的一个主要目标是“将易变的元素与稳定的元素…