VenusFactory / src /crawler /convert /maxit_convert.py
2dogey's picture
Upload folder using huggingface_hub
8918ac7 verified
import os
import argparse
import subprocess
import shutil
from tqdm import tqdm
"""
Install maxit first
https://sw-tools.rcsb.org/apps/MAXIT/index.html
"""
def convert(file, maxit_o=1, out_dir=None, postfix=None):
converted_file = file[:-4] + postfix
if out_dir:
converted_file = os.path.join(out_dir, converted_file.split('/')[-1])
subprocess.run(["maxit", "-input", file, "-output", converted_file, "-o", str(maxit_o)])
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument("--file", type=str)
parser.add_argument("--input_dir", type=str, default=None)
parser.add_argument("--strategy", type=str, choices=["pdb2cif", "cif2pdb", "cif2mmcif"], default=None)
parser.add_argument("--out_dir", type=str, default=None)
args = parser.parse_args()
if args.out_dir:
os.makedirs(args.out_dir, exist_ok=True)
if args.strategy == "pdb2cif":
maxit_o = 1
postfix = ".cif"
elif args.strategy == "cif2pdb":
maxit_o = 2
postfix = ".pdb"
elif args.strategy == "cif2mmcif":
maxit_o = 8
postfix = ".cif"
if args.input_dir:
for file in tqdm(os.listdir(args.input_dir)):
args.file = os.path.join(args.input_dir, file)
convert(args.file, maxit_o, args.out_dir, postfix)
else:
convert(args.file, maxit_o, args.out_dir, postfix)