Open main menu
首页
专栏
课程
分类
归档
Chat
Sci-Hub
谷歌学术
Libgen
GitHub镜像
登录/注册
搜索
关闭
Previous
Previous
Next
Next
无需编程 | 联用「chatGPT」和「TBtools」实现你的 idea,开发你梦寐以求的工具
sockstack
/
362
/
2023-11-14 11:47:47
<p><span style="color: red; font-size: 18px">ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。</span><br><a href="https://ckai.xyz/?sockstack§ion=detail" target="__blank">https://ckai.xyz</a><br><br></p> <article class="_2rhmJa"><h3>写在前面</h3> <p>万万没想到 chatGPT,我玩了整整一个周末。当然,我不是在玩 chatGPT。而是在想,这样一个工具,我们如何更好的使用他,从而解决日常生信数据分析中的简单问题。要知道,绝大多数湿实验科研朋友的数据分析需求,其实是简单的文本处理。TBtools 当然,可以满足不少需求,但总有一些,并不如此。于是,大伙还是要去求助某某。<br> chatGPT 可以相对较好的理解我们想说的话。我测试了下,对于简单的文本处理工作,他完全可以直接生成可用代码。<br> 为此,我决定直接对 TBtools 和 CLI Program Wrapper Creator 进行改造,让他们支持直接脚本编写执行(当然,同时也支持了其他各类语言的脚本,只是需要插件开发者打包一个解释器,如python或perl等)。如此,我们就完全可以让「chatGPT」和「TBtools」联动,实现我们的「春秋大梦」。</p> <h3>示例 2:Fasta序列批量提取</h3> <p>跟 chatGPT 说</p> <div class="_2Uzcx_"> <button class="VJbwyy" type="button" aria-label="复制代码"><i aria-label="icon: copy" class="anticon anticon-copy"><svg viewbox="64 64 896 896" focusable="false" class="" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></i></button><pre class="line-numbers language-undefined"><code class=" language-undefined">用 java 代码实现一个命令行脚本,接受三个参数,第一个是一个ID列表文件,每行一个 ID,第二个是一个 Fasta 序列文件,第三个是输出文件。需要提取 Fasta 序列文件中 ID 在列表文件中存在的序列,输出到输出文件 <span aria-hidden="true" class="line-numbers-rows"><span></span></span></code></pre> </div> <p>结果如下</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 1668px; background-color: transparent;"> <div class="image-container-fill" style="padding-bottom: 238.28%;"></div> <div class="image-view" data-width="2111" data-height="5030"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-4c6941e3794cf143.png" data-original-width="2111" data-original-height="5030" data-original-format="image/png" data-original-filesize="707550" data-image-index="0" style="cursor: zoom-in;" class="" src="//upload-images.jianshu.io/upload_images/10518391-4c6941e3794cf143.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1200/format/webp"></div> </div> <div class="image-caption"></div> </div> <br> <p>代码直接复制到 TBtools 中,简单填充界面</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 338px;"> <div class="image-container-fill" style="padding-bottom: 48.26%;"></div> <div class="image-view" data-width="2982" data-height="1439"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-f51c4ad5a3c90e27.png" data-original-width="2982" data-original-height="1439" data-original-format="image/png" data-original-filesize="218190" data-image-index="1" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 完成插件开发,惊呆了! <h3>示例 1:表格行批量提取软件</h3> <p>我们有一个基因表达量矩阵,可能有100Mb,我们需要从里面提取是100个基因的表达量。我用一句话描述了任务需求,发给「chatGPT」</p> <div class="_2Uzcx_"> <button class="VJbwyy" type="button" aria-label="复制代码"><i aria-label="icon: copy" class="anticon anticon-copy"><svg viewbox="64 64 896 896" focusable="false" class="" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></i></button><pre class="line-numbers language-csharp"><code class=" language-csharp"><span class="token preprocessor property"># chatGPT 镜像链接,无需登录,直接使用</span> https<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>gpt<span class="token punctuation">.</span>chatapi<span class="token punctuation">.</span>art<span class="token operator">/</span> <span aria-hidden="true" class="line-numbers-rows"><span></span><span></span></span></code></pre> </div> <p>具体描述如下</p> <div class="_2Uzcx_"> <button class="VJbwyy" type="button" aria-label="复制代码"><i aria-label="icon: copy" class="anticon anticon-copy"><svg viewbox="64 64 896 896" focusable="false" class="" data-icon="copy" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M832 64H296c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h496v688c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8V96c0-17.7-14.3-32-32-32zM704 192H192c-17.7 0-32 14.3-32 32v530.7c0 8.5 3.4 16.6 9.4 22.6l173.3 173.3c2.2 2.2 4.7 4 7.4 5.5v1.9h4.2c3.5 1.3 7.2 2 11 2H704c17.7 0 32-14.3 32-32V224c0-17.7-14.3-32-32-32zM350 856.2L263.9 770H350v86.2zM664 888H414V746c0-22.1-17.9-40-40-40H232V264h432v624z"></path></svg></i></button><pre class="line-numbers language-undefined"><code class=" language-undefined">使用java代码实现,接受三个命令行参数,第一个参数是接受一个表格文件,表格文件中有行名,有列名,第二个参数是一个ID列表文件,每一行是一个ID,第三个参数是输出文件。这个代码主要功能是,按照ID列表文件中的ID提取表格文件中第一列匹配到ID的所有行,匹配内容输出到输出文件。注意,最终文件同样需要有行名和列名。 <span aria-hidden="true" class="line-numbers-rows"><span></span></span></code></pre> </div> <p>得到结果如下</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 1198px;"> <div class="image-container-fill" style="padding-bottom: 171.09%;"></div> <div class="image-view" data-width="2148" data-height="3675"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-d5a096ad251262fb.png" data-original-width="2148" data-original-height="3675" data-original-format="image/png" data-original-filesize="633423" data-image-index="2" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> <p>打开 TBtools(注意,你需要升级到1.106或者更高版本,使用安装器),转到 「CLI Program Wrapper Creator」功能(注意,插件也需要更新一下),点击「Click X for Script Input」</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 332px;"> <div class="image-container-fill" style="padding-bottom: 47.33%;"></div> <div class="image-view" data-width="2474" data-height="1171"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-4b078ef90dd76784.png" data-original-width="2474" data-original-height="1171" data-original-format="image/png" data-original-filesize="99555" data-image-index="3" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 设置一下文件名,黏贴从 chatGPT 复制过来的代码<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 332px;"> <div class="image-container-fill" style="padding-bottom: 47.33%;"></div> <div class="image-view" data-width="2474" data-height="1171"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-a9c83dd89d89c20a.png" data-original-width="2474" data-original-height="1171" data-original-format="image/png" data-original-filesize="183008" data-image-index="4" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> <p>按照我们描述的需求和chatGPT给出的使用方法(其实也就是我们的需求)</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 486px;"> <div class="image-container-fill" style="padding-bottom: 41.61%;"></div> <div class="image-view" data-width="1168" data-height="486"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-204eb9325faaf6ed.png" data-original-width="1168" data-original-height="486" data-original-format="image/png" data-original-filesize="69157" data-image-index="5" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 配置界面如下<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 267px;"> <div class="image-container-fill" style="padding-bottom: 38.14%;"></div> <div class="image-view" data-width="2926" data-height="1116"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-d357308fc65e01f5.png" data-original-width="2926" data-original-height="1116" data-original-format="image/png" data-original-filesize="184566" data-image-index="6" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 大功告成,我们测试一下<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 267px;"> <div class="image-container-fill" style="padding-bottom: 38.14%;"></div> <div class="image-view" data-width="2926" data-height="1116"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-1caca999a6534c47.png" data-original-width="2926" data-original-height="1116" data-original-format="image/png" data-original-filesize="274106" data-image-index="7" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 直接复制这些报错,丢给「chatGPT」<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 1492px;"> <div class="image-container-fill" style="padding-bottom: 213.07%;"></div> <div class="image-view" data-width="1615" data-height="3441"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-015e61133d282e32.png" data-original-width="1615" data-original-height="3441" data-original-format="image/png" data-original-filesize="614791" data-image-index="8" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 运行了下,发现没有正确提取<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 267px;"> <div class="image-container-fill" style="padding-bottom: 38.14%;"></div> <div class="image-view" data-width="2926" data-height="1116"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-462d8abf97c0e848.png" data-original-width="2926" data-original-height="1116" data-original-format="image/png" data-original-filesize="168349" data-image-index="9" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> <p>让他重新写一个。结果网页链接断开了,镜像不稳定。没事,重新来</p> <br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 725px;"> <div class="image-container-fill" style="padding-bottom: 103.53000000000002%;"></div> <div class="image-view" data-width="2123" data-height="2198"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-83a8f8c20f484fd7.png" data-original-width="2123" data-original-height="2198" data-original-format="image/png" data-original-filesize="492402" data-image-index="10" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 更新代码,再次尝试<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 267px;"> <div class="image-container-fill" style="padding-bottom: 38.14%;"></div> <div class="image-view" data-width="2926" data-height="1116"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-3dc3ef1483a03d5c.png" data-original-width="2926" data-original-height="1116" data-original-format="image/png" data-original-filesize="232722" data-image-index="11" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 又报错了,让他改,反正 chatGPT 真的是一个机器......「无情的我.....」<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 953px;"> <div class="image-container-fill" style="padding-bottom: 136.03%;"></div> <div class="image-view" data-width="1596" data-height="2171"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-f4b14ae2491992e7.png" data-original-width="1596" data-original-height="2171" data-original-format="image/png" data-original-filesize="347205" data-image-index="12" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 完成.....<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 267px;"> <div class="image-container-fill" style="padding-bottom: 38.14%;"></div> <div class="image-view" data-width="2926" data-height="1116"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-b99aa9c7fa2aea68.png" data-original-width="2926" data-original-height="1116" data-original-format="image/png" data-original-filesize="168313" data-image-index="13" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 虽然过程有点波折,不过我们成功开发了一个批量表格提取工具!然后就可以导出插件。<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 267px;"> <div class="image-container-fill" style="padding-bottom: 38.14%;"></div> <div class="image-view" data-width="2926" data-height="1116"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-4aae5c40ec349fa4.png" data-original-width="2926" data-original-height="1116" data-original-format="image/png" data-original-filesize="171584" data-image-index="14" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> OK,我们可以测试一下插件安装和使用,安装好了,完美使用<br> <div class="image-package"> <div class="image-container" style="max-width: 700px; max-height: 493px;"> <div class="image-container-fill" style="padding-bottom: 70.28999999999999%;"></div> <div class="image-view" data-width="1380" data-height="970"><img referrerpolicy="no-referrer" data-original-src="//upload-images.jianshu.io/upload_images/10518391-46f2de67ddb46571.png" data-original-width="1380" data-original-height="970" data-original-format="image/png" data-original-filesize="77585" data-image-index="15" style="cursor: zoom-in;" class="image-loading"></div> </div> <div class="image-caption"></div> </div> <br> 从此,我们可以直接用这个插件来批量提取行,可以发给你的实验室同门,大家都可以用了。 <h3>写在最后</h3> <p>很强!当然,对于一些相对复杂的逻辑,或许需要比较具体的描述。总之,欢迎大伙联用两者,实现自己的想法,开发出有用,实用的插件,分享给朋友和所有TBtools用户。</p> </article>
无需编程 | 联用「chatGPT」和「TBtools」实现你的 idea,开发你梦寐以求的工具
作者
sockstack
许可协议
CC BY 4.0
发布于
2023-11-14
修改于
2025-01-21
上一篇:软件:常用 Linux 软件汇总,值得收藏
下一篇:OpenAI 再放大招,ChatGPT 正式版 API 就是救世主尼奥,而我们都是愚蠢的人类
尚未登录
登录 / 注册
文章分类
博客重构之路
5
Spring Boot简单入门
4
k8s 入门教程
0
MySQL 知识
1
NSQ 消息队列
0
ThinkPHP5 源码分析
5
使用 Docker 从零开始搭建私人代码仓库
3
日常开发汇总
4
标签列表
springboot
hyperf
swoole
webman
php
多线程
数据结构
docker
k8s
thinkphp
mysql
tailwindcss
flowbite
css
前端