scRNA一键注释的AI神器,开箱即用!

文摘   2024-12-14 09:05   江苏  

最近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


文章作者通过将三种注释方法:

  1. 人工注释

  2.  chatgpt自动注释

  3. 其他注释包注释 进行了比较,分析了chatgpt注释结果的利弊。



总的来说,chatgpt注释在初步大类细胞注释中拥有极高的准确率,但在后续亚群注释中性能稍有下降。此外,chatgpt注释在基于10个marker基因的基础上准确率最高,20个或更多反而会下降。


说了这么多,无非就告诉你,这东西就是强!!


那该怎么用?


那不得不说一下GPTcelltype这个包的原理,我们先来看一下官网提供的代码:

#安装包install.packages("openai")remotes::install_github("Winnie09/GPTCelltype")#填写APISys.setenv(OPENAI_API_KEY = 'your_openai_API_key')#加载包#Load packageslibrary(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 objectobj@meta.data$celltype <- as.factor(res[as.character(Idents(obj))])##可视化# Visualize cell type annotation on UMAPDimPlot(obj,group.by='celltype')


那可以看到,最重要的两步便是:


  1. 通过API与chatgpt建立连接

  2. res <- gptcelltype(markers, model = 'gpt-4')分析


道理很简单,可是现在许多想利用chatgpt注释的小伙伴遇到了很多问题:


  1. chatgpt的使用需要vpn

  2. 即使连接上了chatgpt,也会出现网络问题导致无法用API连接并分析

  3. 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额度,无需挂梯子,国内网络直接访问使用,且永久有效!


Biomamba 生信基地
本人为在读博士研究生,此公众号旨在分享生信知识及科研经验与体会,欢迎各位同学、老师与专家的批评指正,也欢迎各界人士的合作与交流。
 最新文章