python学习笔记:批量化查找只包含6个C.ar的苯环结构

本文介绍了如何使用Python进行大量小分子文件的清洗和过滤,核心是通过正则表达式查找特定内容。通过批量查询和验证,筛选出包含6个C.ar结构的mol2文件,这些文件可用于后续的三维空间作用力计算。脚本经过多次验证,确保了正确性,为后续的计算分析打下基础。
摘要由CSDN通过智能技术生成

在清洗文件过程,单纯查找一个文件是不能满足到大量文件计算需求。清洗和过滤大量的小分子文件显然成了必要的需求。

其实python在寻找清洗文件过程并不难,在乎怎么把清洗完的文件用于计算分析才是核心的诉求。

下面我们看看在一堆文件里面,批量查询对应目标列表。


import re
import os

def walk(path):
    if not os.path.exists(path):
        return []
    files_paths = []
    for parent, dirnames, filenames in os.walk(path):
        for filename in filenames:
            files_paths.append(os.path.join(parent, filename))

    return files_paths

def findcar6(mol2file):
    pattern = re.compile(r'\w+\.ar')
    with open(mol2file, 'r') as f:
        content = f.read()
        ret_list = pattern.findall(content)
        num = ret_list.count('C.ar')
        return num == 6

if __name__ == "__main__":
    allfiles = walk(r"G:\pyabs\labs\pdbbind\general_set")
    for f in allfiles:
        file_name, ext = os.path.splitext(f)
        if ext == '.mol2' and findcar6(f):
            print(os.path.basename(f))

试验完后,会输出一堆文件名称,这些文件就包含6个C.ar 文件文件。
在这里插入图片描述

担心脚本会出现错误。再人工去校验。发现验证通过了第一步。
在这里插入图片描述
观察里面对应的结构,可以看到苯环的结构体正是我们想找的小分子文件。
在这里插入图片描述
反复经过多次验证,可以大概刷选出相应的文件。有了这些文件即可用来计算三维空间里面作用力。

目前仅仅是清洗过程中一个很小很小应用。还可以利用可视化工具来实现。这些都是看需求去实现了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值