Debug 1. 单细胞富集分析 (singleseqgset) 报错怎么解?

news/2024/11/8 21:48:34/

 633c0d1b14e1eb7091f48279aed3725b.gif

我们在使用软件包时总是不断的出现各种各样的bug,尤其对于初学者简直就是科研路上的拦路虎,死死的挡住了科研的道路,鉴于小编写公众号时同样会遇到各种问题和困难,因此特意将这些bug记录下来,并分析给大家解决办法,希望尽微薄之力助大家一臂之力。

今天就分析一个单细胞富集分析报错 (singleseqgset)的问题以及解决办法。

报错信息:

logfc.data <- logFC(cluster.ids=as.vector(ser@meta.data$real_id),expr.mat=ser@assays$RNA$data)
Error in if (!class(expr.mat) == "dgCMatrix") { : the condition has length > 1

问题解读:

这个报错信息是说 if 条件的长度大于1 也就是出现多个 TRUE,或者 FALSE, 这样肯定是不对,那么问题出现在class,那么我们看下class的使用方法:

class (as.matrix (1)) "matrix" "array" This is because an array in R is a vector with multiple dimensions, and the matrix is a special type of array with exactly two dimensions, so every matrix is an array.

https://bioinformatics.stackexchange.com/questions/16362/converting-a-matrix-array-to-matrix#:~:text=%3E%20class%20%28as.matrix%20%281%29%29%20%22matrix%22%20%22array%22%20This%20is,a%20matrix%20is%20telling%20us%20here%2C%20see%20http%3A%2F%2Fadv-r.had.co.nz%2FData-structures.html

fe2726405136bf83d1858d48e3885c93.jpeg

expr.mat <- matrix(c(3:14), nrow = 4, byrow = TRUE)
print(expr.mat)
#     [,1] [,2] [,3]
# [1,]    3    4    5
# [2,]    6    7    8
# [3,]    9   10   11
# [4,]   12   13   14
class(expr.mat)
# [1] "matrix" "array"

我们注意到执行class(expr.mat)后其实是获得两个元素的向量,因此会报错:the condition has length > 1

解决办法:

将 if (!class(expr.mat) == "dgCMatrix")  改为 if (!class(expr.mat)[1] == "dgCMatrix")

修改之后我们再运行:

if (!class(expr.mat)[1] == "dgCMatrix") {print(expr.mat)}
#      [,1] [,2] [,3]
# [1,]    3    4    5
# [2,]    6    7    8
# [3,]    9   10   11
# [4,]   12   13   14

这样就可以运行了,具体看下 singleseqgset 实操代码:

  1. 下载软件包:在git上找到singleseqgset下载到本地。

a19aedd986c9367a26149f96513b7e84.png

2. 在软件包里面直接复制出来如下两个R脚本。

d39697d8f8eeffd6f24e8c1fc2a05dbb.jpeg

3. 使用 Rstudio 打开 "cluster_logfc.R"脚本文件,找到需要修改的字段,直接修改即可。

2ca891672840a91c47d29c8abae16d7e.png

cee9db0510d710fff8a3122438ae7510.png

4. 使用 Rstudio 打开 "wmw_gsea.R"脚本文件,找到需要修改的字段,直接修改即可。

94bca4b34266ffce0b972a953b08652c.png

6a457be01afb514938449ca0b26208fc.png

5. 保存之后,可以通过source()的方式直接调取脚本,如下:

491de4a39674ca9ff6c04ea8be8f8385.png

也可以再次打包为软件包,本地加载即可。

桓峰基因,铸造成功的您!

未来桓峰基因公众号将不间断的推出单细胞系列生信分析教程,

敬请期待!!

有想进生信交流群的老师可以扫最后一个二维码加微信,备注“单位+姓名+目的”!!!

bc73370d3634082fd19b260683194872.png

桓峰基因官网正式上线,请大家多多关注,还有很多不足之处,大家多多指正!

http://www.kyohogene.com/

桓峰基因和投必得合作,文章润色优惠85折,需要文章润色的老师可以直接到网站输入领取桓峰基因专属优惠券码:KYOHOGENE,然后上传,付款时选择桓峰基因优惠券即可享受85折优惠哦!https://www.topeditsci.com/


http://www.ppmy.cn/news/538719.html

相关文章

h5免签聚合支付系统yy支付-y币+yy陪玩-系统源码

h5免签聚合支付系统yy支付y币yy陪玩-系统源码 亲测监控可以用 正常

yy直播礼物android开源,YY直播没“大哥”刷礼物了,不是没大哥,而是神豪们都开直播了...

想必许多YY游客粉丝们都有所感觉&#xff0c;现在的YY直播平台已经不像以前那样大哥神豪遍布&#xff0c;许多超人气主播都面临没有“土豪”玩家消费的情况。而且在2019年的YY年度盛典上&#xff0c;其榜单情况也是比往年少了很多。 小编查看了YY直播年度上近三年的“娱乐大人物…

YY秋叶协议源码

YY秋叶协议官网&#xff1a;www.yy2b.cn 免费YY软件官网&#xff1a;www.yy2b.cn 诚招技术伙伴成员&#xff0c;有技术可以来一起玩添加链接描述

yy主播旁边的机器人_YY上三位“聪明”主播,伽柏垄断主播设备,其余两位成为老板...

YY直播平台已经发展10余年&#xff0c;而在这期间出现了许许多多的“大人物”、人气主播等。而这其中也不乏缺少一些头脑灵活的“聪明人”&#xff0c;那么今天小编就为大家来说说YY上的几位“聪明”人物。 可能熟知YY直播的老游客都应该知道&#xff0c;曾经有一位以出售主播“…

玩转python循环条件

循环&条件 一、条件语句二、循环语句三、条件与循环进阶 一、条件语句 基础 # y |x| 使用条件语句解释 if x < 0:y -x else:y x# 注&#xff1a;其他语言的条件语句都会这样去写&#xff1a;if(x < 0){ ... } &#xff0c;而python 是条件语句后加冒号&#xff…

Espressif 玩转 固件下载

今天来撸一下 Espressif 的 Serial Protocol。虽然 Espressif 已经提供了 esptool 工具用于固件下载&#xff0c;但架不住还是有将下载功能集成到自己工具中的需求呀。 对于 Serial Protocol&#xff0c;Espressif 已经提供了比较完善的文档。但个人认为文档写的过于繁琐&…

mysql增删改查

目录 一、准备工作1.1 安装或关闭以下服务1.2 本次安装环境 2、MYSQL增加数据2.1 准备工作2.2 创建新表2.3 查看新增表2.4 MYSQL写入数据 3、删除数据3.1 删除数据表中某列3.2 删除数据表中的数据3.3 删除数据表 4、MYSQL修改4.1 修改数据表名称4.2 修改数据表列名称4.3修改数据…

申万宏源程序化接口的编写

一个程序化接口的编写,接口不实现另一个通达信数据接口的编写,接口&#xff0c;但可以继承多个其他通达信数据接口的编写,接口。程序化接口的编写,接口的多继承特点弥补了类的单继承。