写在前面
万万没想到 chatGPT,我玩了整整一个周末。当然,我不是在玩 chatGPT。而是在想,这样一个工具,我们如何更好的使用他,从而解决日常生信数据分析中的简单问题。要知道,绝大多数湿实验科研朋友的数据分析需求,其实是简单的文本处理。TBtools 当然,可以满足不少需求,但总有一些,并不如此。于是,大伙还是要去求助某某。
chatGPT 可以相对较好的理解我们想说的话。我测试了下,对于简单的文本处理工作,他完全可以直接生成可用代码。
为此,我决定直接对 TBtools 和 CLI Program Wrapper Creator 进行改造,让他们支持直接脚本编写执行(当然,同时也支持了其他各类语言的脚本,只是需要插件开发者打包一个解释器,如python或perl等)。如此,我们就完全可以让「chatGPT」和「TBtools」联动,实现我们的「春秋大梦」。
示例 2:Fasta序列批量提取
跟 chatGPT 说
用 java 代码实现一个命令行脚本,接受三个参数,第一个是一个ID列表文件,每行一个 ID,第二个是一个 Fasta 序列文件,第三个是输出文件。需要提取 Fasta 序列文件中 ID 在列表文件中存在的序列,输出到输出文件
结果如下
代码直接复制到 TBtools 中,简单填充界面
完成插件开发,惊呆了!
示例 1:表格行批量提取软件
我们有一个基因表达量矩阵,可能有100Mb,我们需要从里面提取是100个基因的表达量。我用一句话描述了任务需求,发给「chatGPT」
# chatGPT 镜像链接,无需登录,直接使用
https://gpt.chatapi.art/
具体描述如下
使用java代码实现,接受三个命令行参数,第一个参数是接受一个表格文件,表格文件中有行名,有列名,第二个参数是一个ID列表文件,每一行是一个ID,第三个参数是输出文件。这个代码主要功能是,按照ID列表文件中的ID提取表格文件中第一列匹配到ID的所有行,匹配内容输出到输出文件。注意,最终文件同样需要有行名和列名。
得到结果如下
打开 TBtools(注意,你需要升级到1.106或者更高版本,使用安装器),转到 「CLI Program Wrapper Creator」功能(注意,插件也需要更新一下),点击「Click X for Script Input」
设置一下文件名,黏贴从 chatGPT 复制过来的代码
按照我们描述的需求和chatGPT给出的使用方法(其实也就是我们的需求)
配置界面如下
大功告成,我们测试一下
直接复制这些报错,丢给「chatGPT」
运行了下,发现没有正确提取
让他重新写一个。结果网页链接断开了,镜像不稳定。没事,重新来
更新代码,再次尝试
又报错了,让他改,反正 chatGPT 真的是一个机器......「无情的我.....」
完成.....
虽然过程有点波折,不过我们成功开发了一个批量表格提取工具!然后就可以导出插件。
OK,我们可以测试一下插件安装和使用,安装好了,完美使用
从此,我们可以直接用这个插件来批量提取行,可以发给你的实验室同门,大家都可以用了。
写在最后
很强!当然,对于一些相对复杂的逻辑,或许需要比较具体的描述。总之,欢迎大伙联用两者,实现自己的想法,开发出有用,实用的插件,分享给朋友和所有TBtools用户。