MOFid安装及使用

前提要求:

1. 安装Anaconda (https://www.anaconda.com/distribution/#download-section)。完成后打开,安装spyder (此处任意)。

2. 安装Cygwin (Cygwin),安装过程都是默认选项,最一步选择 `cmake`, `make`, `wget`, `gcc-core`, `gcc-g++`, and `pkg-config` packages 进行安装。

3. 安装Java (https://www.java.com/en/download/) 并配置系统变量。如果不确定,尝试在win+R “cmd”命令中运行“java”,看看它是否成功调用java。(自行百度)

4,解压mofid-master。

安装步骤:

  1. 打开Cygwin, 输入 “cd /cygdrive/c/mofid-master”, 按enter键,其中c为硬盘,mofid-master为解压后的文件夹;
  2. 输入“make init”; 开始执行makefile文件。(过程有点长)
  3. 管理员方式打开Anaconda Prompt ,输入mofid-master所在盘例如“d:”,然后“cd /mofid-master(路径)”。最后依次输入运行“python set_paths.py install”,“python setup.py install” 安装,至此安装完毕。

使用:

1,简单使用MOFid拆分单个MOF

Spyder中输入以下代码:

from mofid.run_mofid import cif2mofid  #该行代码需在spyder右上角打开安装完毕后的路径“\mofid-master\mofid-master\build\lib”下运行。

cif_path = '/path/to/my/mof.cif'  #'/path/to/my/mof.cif'为存放cif文件的路径

mofid = cif2mofid(cif_path)

2,批量拆分MOF

Spyder中输入以下代码:

## 批量计算cif文件

import os

from mofid.run_mofid import cif2mofid

path = "E:/All file/MOF database/Core MOF/both" #cif文件夹目录

files= os.listdir(path)  #得到文件夹下的所有文件名称

txts = []

for file in files: #遍历文件夹

    cif_path = path+'\\'+ file #构造绝对路径,"\\",其中一个'\'为转义符

    mofid = cif2mofid(cif_path,output_path='output'+file) 

print("文件处理完毕")

3,批量提取拆分后的文件(整体思路先提取所需的含拆分后cif文件的所有文件夹,再从中提取所需的cif)

1)提取拆分后相关cif文件夹(此处有MetalOxo,SingleNode,AllNode,自己看文献各取所需,我这里举例MetalOxo。只要‘python_mofkey’的看第二步)

Spyder中输入以下代码:

##批量提取MetalOxo 文件夹

import os,sys

import shutil

def copy_folder(rootpath, dstpath):

    # 读取文件夹目录,返回指定的文件夹包含的文件或文件夹的名字的列表

    dirs = os.listdir(rootpath)

    # 将读取的文件夹名字转成数组形式

    for dir in dirs:

        # print(dir)

        # 移动符合条件的文件夹并重命名

        if os.path.exists(rootpath + os.path.sep + dir + os.path.sep + 'MetalOxo'):

            shutil.copytree(rootpath + os.path.sep + dir + os.path.sep + 'MetalOxo', dstpath + os.path.sep + 'all' + os.path.sep + dir+'-MetalOxo')

        else:

            continue

if __name__ == '__main__':

    rootpath = 'E:/ Core MOF/convert' #设置原始拆分后的文件夹

    dstpath = 'E:/All file/MOF database/Core MOF\\all_output' # 设置提取的文件夹路径

    copy_folder(rootpath, dstpath)

print("Finish!!")

2) 批量提取cif文件或“python_mofkey.txt”

新建批处理文件:首先新建txt文件,输入以下代码后另存为bat后缀文件,并放至all_output文件夹(以上一步骤结果为例)下双击即可运行。该例子是提取所有的拆分后的MOF的MetalOxo文件夹下的linkers.cif文件。该批处理文件使用的前提是需要提取的文件仅在文件夹下一级,因此也可以直接批量提取拆分后文件夹下的“python_mofkey.txt”文件。

@echo off

# 设置拷贝到all_output_linkers文件夹路径

set "folderTarget= E:\all_output_linkers"

for /f "delims=" %%i in ('dir /ad /b') do (

    if "%%i" neq "%folderTarget%" (

        copy /y "%%i\linkers.cif" "%folderTarget%\"

        ren "%folderTarget%\linkers.cif " "%%i_linkers.cif "

    )

)

  • 18
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值