win10下无需额外安装软件读取Autodock Vina结果并生成excel可读文件

由于Autodock Vina的结果是生成了一个一个的独立.txt文件,我们完成对接后往往需要一个一个的查看,还有将里面的数据提出整理成表格进行排序和筛选。

本文介绍一个批处理程序,可以将对接结果提取出来,做成.csv文件。这个文件直接就可以用excel读取,然后另存为.xlsx格式即可。

我之前的文章介绍了一对多多对多的对接方法。由于结果保存的路径不太一样,所以我们以这两个结果为例,分别介绍一下代码。

一、一对多对接结果的批处理代码

一对多的结果储存在以其配体命名的文件夹中,如下图所示。
在这里插入图片描述
我们需要分别读取文件夹名和其中的log.txt中排名第一的对接结合能结果。在该文件夹中新建一个txt文件。把以下代码复制进去。保存后关闭该文件。将该文件的后缀名.txt改为.bat双击运行即可。

@echo off
for /d %%f in (*) do (
	for /f "skip=4 tokens=1,2 delims= " %%x in (%%~nf/log.txt) do (
 		if %%x==1 echo %%~nf,%%y >> results.txt))
exit

二、多对多对接结果的批处理代码

多对多的结果以txt文件的形式存在了results文件夹里,如下图所示。
多对多结果
我们需要读取txt的文件名和排名第一的对接结合能结果。在该文件夹中新建一个txt文件。把以下代码复制进去。保存后关闭该文件。将该文件的后缀名.txt改为.bat双击运行即可。

@echo off
for %%f in (*.txt) do (
	for /f "skip=4 tokens=1,2 delims= " %%x in (%%f) do (
 		if %%x==1 echo %%~nf,%%y >> results.txt))
exit

三、excel的读取

上述两个代码均可生成一个results.txt的文件。然后将这个文件的后缀名由.txt改成.csv。这样就可以被excel识别并读取,并可进行排序筛选等一系类的操作,并可以另存为xlsx的格式储存了。结果如下图所示。
在这里插入图片描述

有一个小伙伴推荐了一个叫sailvina的软件,是一个大神写的图形化vina操作程序,功能很齐全,比较简单操作,无需搞这么多代码。大家可以下载使用试试。

有什么问题可以评论区留言讨论一起学习进步哦。

猜你喜欢

转载自blog.csdn.net/weixin_55842556/article/details/122265905