上午
1,关于R4.3.2、scPred和Seurat5版本不兼容的问题
最初的目的是使用scPred官网的示例(Introduction to scPred • scPred (powellgenomicslab.github.io))跑一遍,然后复现文章里的图。跑scPred示例的时候
query <- scPredict(query, reference)
报错,提示"assay" must be one of "RNA",not "data"。更改DefaultAssay()无效。询问后可能是Seurat版本不对,因为Seurat5的数据存储格式改变了。于是下载历史版本的Seurat。
但是R4.3.2一直安装不上Seurat4,4.3.1也装不上,所以去查了scPred用的R的版本,R4.1.0,安装R4.1.0后seurat4.3.0出现在已安装的程序包中,说明确实可能是R版本太高了装不了低版本的Seurat了,但是又出现好多其他包的版本对不上的问题。
于是下载了R4.1.3,仍然提示rtools版本不对,那就下载一个对应版本的rtools吧(镜像网站上有说明对应哪些版本可用The Comprehensive R Archive Network (tsinghua.edu.cn))
下载rtools:
Sys.which("make") #查看是否已安装make
pkgbuild::find_rtools(debug = TRUE) #查看是否已安装rtools
R.version #查看当前R的版本
从镜像网站上下载下来相应的.exe文件,然后双击开始安装就可以。rtools40还需要配置环境,镜像网站上也有教程,在R里使用下面的命令:
write('PATH="${RTOOLS40_HOME}\\usr\\bin;${PATH}"', file = "~/.Renviron", append = TRUE)
# 配置环境
就可以用rtools了。
下载scPred:
devtools::install_github("immunogenomics/harmony")
devtools::install_github("powellgenomicslab/scPred")
使用 Seurat4.3.0 和 SeuratObject4.1.3 可以跑成功scPred的示例代码了。
2,关于seurat对象的rownames修改的问题
Seurat5中直接用rownames(Seurat_obj)<-...就可以改。
Seurat4中用上面的命令报错了:Error in dimnames(x) <- dn : 'dimnames'只能用于陈列。
下午
找到这个解决办法(How to change a gene name · Issue #1049 · satijalab/seurat · GitHub),虽然约等于没解决,但是来自seurat包的作者,可信度高哇。
所以就是说这个直接修改rownames(Seurat_obj)是不可行的,那么就试一下修改RNA里data的rownames吧,修改成功,并且再次rownames(Seurat_obj)也变成了新的gene名了。但是新的错误出现了, NormalizeData(Seurat_obj)的时候,报错:类别为“Assay”的对象不对: 'meta.features' must have the same number of rows as 'data'。
所以最后解决办法是:先更换RNA里的data的rownames,再用这个data重新建一个SeuratObject,然后在新的obj里做后续的分析即可。
晚上
hopf分岔学习,好像还是不太会在matlab里直接实现代码,熟练度根本不够,主要是这个知识原理还不太明白,导致算法不会写,最终导致代码敲不出来。希望明天可以想通hopf的原理。
今日总结
解决了两个问题,其中第一个困扰我已久,今天有很大的进步,我真棒!
明日提醒
记得看论文,距离本学期汇报还有17天 。