From eb571da037fa338d81cff82f297fcbd98d31684c Mon Sep 17 00:00:00 2001 From: AderikVoorspoels Date: Fri, 26 Sep 2025 15:36:18 +0100 Subject: [PATCH 1/3] adding a distogram ouput flag --- .gitignore | 19 ------------------- abcfold/abcfold.py | 3 ++- abcfold/alphafold3/run_alphafold3.py | 9 +++++++-- abcfold/argparse_utils.py | 6 ++++++ abcfold/data/config.ini | 3 --- 5 files changed, 15 insertions(+), 25 deletions(-) delete mode 100644 .gitignore delete mode 100644 abcfold/data/config.ini diff --git a/.gitignore b/.gitignore deleted file mode 100644 index aeb6762..0000000 --- a/.gitignore +++ /dev/null @@ -1,19 +0,0 @@ -__pycache__/ - -*.egg-info/ -build/ - -.mypy_cache/ -.ruff_cache/ -.pytest_cache/ - -.coverage - -.vscode/ - -.history/ - - -# pip packages -dist/ -*.egg-info/ diff --git a/abcfold/abcfold.py b/abcfold/abcfold.py index c32fb05..d4b083d 100644 --- a/abcfold/abcfold.py +++ b/abcfold/abcfold.py @@ -153,13 +153,14 @@ def run(args, config, defaults, config_file): number_of_models=args.number_of_models, num_recycles=args.num_recycles, sif_path=args.sif_path, + save_distogram=args.save_distogram ) if af3_success: af3_out_dir = list( [ dir_ - for dir_ in args.output_dir.glob(f"*{name.lower()}*") + for dir_ in args.output_dir.glob(f"*{name.replace(' ','_')}*") if dir_.is_dir() ] )[0] diff --git a/abcfold/alphafold3/run_alphafold3.py b/abcfold/alphafold3/run_alphafold3.py index 61f44a6..3f98b70 100644 --- a/abcfold/alphafold3/run_alphafold3.py +++ b/abcfold/alphafold3/run_alphafold3.py @@ -16,6 +16,7 @@ def run_alphafold3( interactive: bool = False, number_of_models: int = 5, num_recycles: int = 10, + save_distogram: bool = False ) -> bool: """ Run Alphafold3 using the input JSON file @@ -48,6 +49,7 @@ def run_alphafold3( interactive=interactive, number_of_models=number_of_models, num_recycles=num_recycles, + save_distogram=save_distogram ) logger.info("Running Alphafold3") @@ -77,6 +79,7 @@ def generate_af3_cmd( number_of_models: int = 10, num_recycles: int = 5, interactive: bool = False, + save_distogram: bool = False, ) -> str: """ Generate the Alphafold3 command @@ -110,7 +113,8 @@ def generate_af3_cmd( --model_dir=/root/models \ --output_dir=/root/af_output \ --num_diffusion_samples {number_of_models}\ - --num_recycles {num_recycles} + --num_recycles {num_recycles}\ + --save_distogram {str(save_distogram).lower()} """ else: @@ -127,5 +131,6 @@ def generate_af3_cmd( --model_dir=/root/models \ --output_dir=/root/af_output \ --num_diffusion_samples {number_of_models}\ - --num_recycles {num_recycles} + --num_recycles {num_recycles}\ + --save_distogram {str(save_distogram).lower()} """ diff --git a/abcfold/argparse_utils.py b/abcfold/argparse_utils.py index b2d3011..270f95b 100644 --- a/abcfold/argparse_utils.py +++ b/abcfold/argparse_utils.py @@ -174,6 +174,12 @@ def alphafold_argparse_util(parser): Alphafold3 to search for templates", ) + parser.add_argument( + "--save_distogram", + action="store_true", + help="[optional] store AlphaFold3 distograms", + ) + return parser diff --git a/abcfold/data/config.ini b/abcfold/data/config.ini deleted file mode 100644 index 3e99f7f..0000000 --- a/abcfold/data/config.ini +++ /dev/null @@ -1,3 +0,0 @@ -[Databases] -model_params = None -database_dir = None From 157753905f5e0d9b3566cd5fdf1290c268d68d10 Mon Sep 17 00:00:00 2001 From: AderikVoorspoels Date: Fri, 26 Sep 2025 15:40:53 +0100 Subject: [PATCH 2/3] distogram outputs withou messing up the rest --- .gitignore | 18 ++++++++++++++++++ abcfold/data/config.ini | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 .gitignore create mode 100644 abcfold/data/config.ini diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..be5e6c4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,18 @@ +__pycache__/ + +*.egg-info/ +build/ + +.mypy_cache/ +.ruff_cache/ +.pytest_cache/ + +.coverage + +.vscode/ + +.history/ + +# pip packages +dist/ +*.egg-info/ diff --git a/abcfold/data/config.ini b/abcfold/data/config.ini new file mode 100644 index 0000000..3e99f7f --- /dev/null +++ b/abcfold/data/config.ini @@ -0,0 +1,3 @@ +[Databases] +model_params = None +database_dir = None From de72d6995721c4faf8abffde1f96ca64ea3b04f8 Mon Sep 17 00:00:00 2001 From: AderikVoorspoels Date: Fri, 26 Sep 2025 15:51:04 +0100 Subject: [PATCH 3/3] adopting the existing fix for new naming pattern but still adding distogram option --- abcfold/abcfold.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/abcfold/abcfold.py b/abcfold/abcfold.py index d4b083d..d952864 100644 --- a/abcfold/abcfold.py +++ b/abcfold/abcfold.py @@ -1,6 +1,7 @@ import configparser import json import os +import re import shutil import socketserver import sys @@ -157,11 +158,12 @@ def run(args, config, defaults, config_file): ) if af3_success: + pattern = re.compile(f"^{name}.*", re.IGNORECASE) af3_out_dir = list( [ dir_ - for dir_ in args.output_dir.glob(f"*{name.replace(' ','_')}*") - if dir_.is_dir() + for dir_ in args.output_dir.glob("*") + if dir_.is_dir() and pattern.match(dir_.name) ] )[0] ao = AlphafoldOutput(af3_out_dir, input_params, name)