diff --git a/modelbuilder.py b/modelbuilder.py index 0c06f92..a584a83 100644 --- a/modelbuilder.py +++ b/modelbuilder.py @@ -8,7 +8,7 @@ @Email :pylyzeng@gmail.com @version :1.0 ''' - +import argparse from dataclasses import dataclass, field from pathlib import Path import os @@ -172,7 +172,27 @@ class LoopModelBuilder: self.pymol_instance.create(merged_object_name, ' or '.join(object_names)) self.pymol_instance.save(output_file, merged_object_name) +def main(): + # 创建ArgumentParser对象 + parser = argparse.ArgumentParser(description="Loop Model Builder for PDB files") + # 添加参数 + parser.add_argument("pdb_file", type=str, help="Path to the PDB file") + parser.add_argument("--typestr", type=str, default="refine.very_fast", + help="Model refinement type (default: refine.very_fast)") + parser.add_argument("--output_dir", type=str, default=None, + help="Output directory (default: same as PDB file directory)") + + # 解析参数 + args = parser.parse_args() + + # 调用LoopModelBuilder + pdb_path = Path(args.pdb_file).absolute() + output_dir = Path(args.output_dir).absolute() if args.output_dir else None + + model_builder = LoopModelBuilder(pdb_file=pdb_path, output_dir=output_dir) + result_path = model_builder.run(typestr=args.typestr) + + print(f"Modeling completed. Output file: {result_path}") if __name__ == "__main__": - l = LoopModelBuilder(Path('./2vlk.pdb')) - l.run() + main()