乐于分享
好东西不私藏

R智能体aisdk的新功能ask_ai():稳稳地接住你的报错然后直接解决!

R智能体aisdk的新功能ask_ai():稳稳地接住你的报错然后直接解决!

前面我们给大家介绍了R中的智能体 aisdk,见:

aisdk:在R console聊天,让AI干活!(活人版本教程)

aisdk还是太超前了:继Y叔,生信技能树被蒸馏后,还可以自主接入任何想要的skills!

然后在使用的过程中,我提了一个小的建议,见上面的稿子,你可以找到,我当时觉得我那个想法有点痴心妄想,但是!YH的脑子不知道怎么长的,转身就在aisdk里面加了一个新的功能 ask_ai(),使用过后,直接打开新世界,给你带来全新的体验!!!

来看看!

情景复现1:

我这里在本地电脑上面测试monocle2的代码,会遇到一些以前遇到的报错,原因也基本都知道怎么修改,但是为了测试 aisdk 的新功能 ask_ai(),我决定让这个R里面的智能体来给我修改!

测试数据:

在这里可下载:44-单细胞多组火山图 链接: https://pan.baidu.com/s/121YDbgxYuQHW-UZvlLdfsQ?pwd=cpwh 提取码: cpwh

首先运行R代码:

rm(list=ls())library(aisdk)library(monocle)         # 单细胞轨迹分析核心包library(Seurat)library(dplyr)library(ggplot2)library(igraph)set.seed(42)getwd()dir <- "./5-monocle2/"print(getwd())# 1.读取已注释的Seurat对象----subset_data <- qs::qread("./4-subcluster_T-NKcells/sce.all_int.qs")subset_datahead(subset_data@meta.data)meta <- readRDS("4-subcluster_T-NKcells/phe.rds")subset_data <- AddMetaData(subset_data, metadata = meta)table(subset_data$celltype_sub)DimPlot(subset_data, label = T,group.by = "celltype_sub")Idents(subset_data) <- "celltype_sub"table(subset_data$celltype_sub)# 选择和抽样细胞子集# 选择特定细胞类型进行分析(纤维细胞、内皮细胞、上皮细胞)subset_data <- subset(subset_data, ident = c('CD8+ cytotoxic T'))table(Idents(subset_data))head(subset_data@meta.data)#aisdk::ask_ai(skill = "小树")# 2.Seurat元数据整合和Monocle对象创建----# 从Seurat对象提取count矩阵expression_matrix <- GetAssayData(object = subset_data, assay = "RNA", slot = "counts")

这里出现了一个报错:

这个时候使用 aisdk::ask_ai() 进入报错诊断,接住上面的报错:

aisdk::ask_ai()

他这里诊断可能有点久,我就按了esc,重新给了他一句提示:

帮我修改这句代码变成可以提取count就行

然后它直接修改了我的R脚本中的代码:

我重新跑了上面的,非常顺利丝滑!!!

情景复现2:

下面这个报错的解决方案是我始料未及的,它真的太棒啦!以前我都是自己手动修改monocle2的R包,但是这次 ask_ai() 给的方法很惊喜!!!

来看看!

上面monocle2的脚本接着运行:

# 2.Seurat元数据整合和Monocle对象创建----# 从Seurat对象提取count矩阵expression_matrix <- GetAssayData(object = subset_data, assay = "RNA", layer = "counts")# 准备细胞元数据cell_metadata <- new('AnnotatedDataFrame', data = subset_data@meta.data)# 准备基因注释信息gene_annotation <- new('AnnotatedDataFrame'                       data = data.frame(gene_short_name = row.names(subset_data),                                         row.names = row.names(subset_data)))# 3.创建 Monocle 核心对象 (CellDataSet)----# expressionFamily = negbinomial.size:指定使用负二项分布处理UMI数据monocle_cds <- monocle::newCellDataSet(expression_matrix,                                       phenoData = cell_metadata,                                       featureData = gene_annotation,                                       lowerDetectionLimit = 0.5,                                       expressionFamily = VGAM::negbinomial.size())monocle_cds# 4.Monocle2 预处理与轨迹推断----# 4.1 数据预处理和归一化cds <- monocle_cds # 重命名对象便于后续操作cds <- estimateSizeFactors(cds) # 标准化测序深度差异cds <- estimateDispersions(cds) # 估计基因表达的离散度

运行到这里,又是一个非常经典的报错!

跟上面一样,输入下面的命令接住上面的报错:

aisdk::ask_ai()

他就开始检测我的报错内容了,然后问我是不是要用这个error,选择y即可:

到这里它已经思考完了,但是我好像看不到细节,所以我让它给我看细节:

你可以展示你的思考过程吗,现在只显示多少行,看不到细节

上面给了很详细的解决方案,但是我们不必自己动手,我让它给我修补:

你帮我插入你的修复方案,然后插入的代码记得给我个标记知道是你插入的

插入的一段代码:

退出然后看看效果咋样:

/quit

运行成功了!

是不是超级棒!!!

R中的报错,解决方案直接给出新的世界打开方式!

AI交流,欢迎来群里交流玩,请备注AI交流

友情转发: