最近GPTcelltype这款利用chatgpt自动注释包很火,这个方法来源于发表在《Nature Methods》杂志的《Assessing GPT-4 for cell type annotation in single-cell RNA-seq analysis》。
这么方便的工具,还没有心动吗?如果你需要在自己本地使用魔改版的GPTcelltype,请后台回复关键词“数信院GPTcelltype”。
最新福利: 添加下方客服 =>进入体验群 =>12.16晚上6点开始抽奖,可以获赠300W token的ChatGPT4o的API额度,无需挂梯子,国内网络直接访问使用,且永久有效!
我仔细看了一下文章,发现其实原理很简单:
示例1
文章作者通过将三种注释方法:
人工注释
chatgpt自动注释
其他注释包注释 进行了比较,分析了chatgpt注释结果的利弊。
总的来说,chatgpt注释在初步大类细胞注释中拥有极高的准确率,但在后续亚群注释中性能稍有下降。此外,chatgpt注释在基于10个marker基因的基础上准确率最高,20个或更多反而会下降。
说了这么多,无非就告诉你,这东西就是强!!
那该怎么用?
那不得不说一下GPTcelltype这个包的原理,我们先来看一下官网提供的代码:
#安装包
install.packages("openai")
remotes::install_github("Winnie09/GPTCelltype")
#填写API
Sys.setenv(OPENAI_API_KEY = 'your_openai_API_key')
#加载包
#Load packages
library(GPTCelltype)
library(openai)
#准备文件
#Assume you have already run the Seurat pipeline https://satijalab.org/seurat/
#"obj" is the Seurat object; "markers" is the output from FindAllMarkers(obj)
#Cell type annotation by GPT-4
##注释
res <- gptcelltype(markers, model = 'gpt-4')
##添加到metadata
# Assign cell type annotation back to Seurat object
obj@meta.data$celltype <- as.factor(res[as.character(Idents(obj))])
##可视化
# Visualize cell type annotation on UMAP
DimPlot(obj,group.by='celltype')
那可以看到,最重要的两步便是:
通过API与chatgpt建立连接
res <- gptcelltype(markers, model = 'gpt-4')分析
道理很简单,可是现在许多想利用chatgpt注释的小伙伴遇到了很多问题:
chatgpt的使用需要vpn
即使连接上了chatgpt,也会出现网络问题导致无法用API连接并分析
chatgpt官方的API需要使用海外银行卡账户才能充值,国内用户无法直接充值且代充有高手续费。
这可不是空穴来风,github上已经有不少反馈:
示例2
因此,针对这些问题,数信院技术团队推出可以自定义url(API)的魔改版GPYcelltype,搭配我们提供的国内直连API,可以完美解决国内网络导致的问题。
教程
markers <- FindAllMarkers(sc.s, only.pos = TRUE, min.pct = 0.25, logfc.threshold = 0.5,test.use = "MAST")
top10 <- markers %>% group_by(cluster) %>% top_n(n = 10, wt = avg_log2FC)
top10<-as.data.frame(top10)
如上所示,我的seurat对象即为sc.s,FindAllMaker的结果即为markers文件,由于自动注释对于top10基因注释准确性更高,因此我提取了排名前10的基因,用于分析。当然,这里你也可以直接使用markers用于分析。
Sys.setenv(OPENAI_API_KEY = 'xxxxxxxx')
res <- gptcelltype(top10, tissuename="xxxx",model = 'gpt-4',mine_url = "http://sxycloud.cn:3000")
原版的代码中需要输入openai账号的API,从而连接到chatgpt,在这里我们提供数信院特殊的API用于替代。在分析这一步,我们对gptcelltype这个函数添加了一个新的参数“mine_url”以链接数信院的AI助手。
注:OPENAI_API_KEY和mine_url需要填写数信院AI小助手的信息(联系客服领取个人独享的OPENAI_API_KEY和mine_url)
我们运行上述代码,可以看到运行窗口中返回了提示信息,即说明注释成功:
示例4
接下来我们把他添加到seurat文件metadata中:
示例5
可以看到已经添加到新的一列了,咱们用图看一下未注射之前的图:
示例6
注释之后变成了如下所示:
示例7
这么方便的工具,还没有心动吗?如果你需要在自己本地使用魔改版的GPTcelltype,请后台回复关键词“数信院GPTcelltype”。
最新福利: 添加下方客服 =>进入体验群 =>12.16晚上6点开始抽奖,可以获赠300W token的ChatGPT4o的API额度,无需挂梯子,国内网络直接访问使用,且永久有效!