From 864d216ae2262010780b1a3ba4c63340e28a86ea Mon Sep 17 00:00:00 2001 From: Quentin Rouger <144003341+Qrouger@users.noreply.github.com> Date: Tue, 18 Nov 2025 16:25:05 +0100 Subject: [PATCH 1/4] Add use_templates option for MSA calculation Added use_templates parameter to allow template search for precomputed MSA. --- alphapulldown/objects.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/alphapulldown/objects.py b/alphapulldown/objects.py index ad274644..0a1543cd 100644 --- a/alphapulldown/objects.py +++ b/alphapulldown/objects.py @@ -189,6 +189,7 @@ def make_mmseq_features( output_dir=None, compress_msa_files=False, use_precomputed_msa=False, + use_templates = True, ): """ A method to use mmseq_remote to calculate MSA. @@ -200,7 +201,6 @@ def make_mmseq_features( msa_mode = "mmseqs2_uniref_env" keep_existing_results = True result_dir = output_dir - use_templates = True result_zip = os.path.join(result_dir, self.description, ".result.zip") if keep_existing_results and plPath(result_zip).is_file(): logging.info(f"Skipping {self.description} (result.zip)") @@ -211,6 +211,21 @@ def make_mmseq_features( a3m_lines = [plPath(a3m_path).read_text()] (unpaired_msa, paired_msa, query_seqs_unique, query_seqs_cardinality, template_features) = unserialize_msa(a3m_lines, self.sequence) + + if use_templates == True : #Search templates for precomputed msa + (_, _, _, _, template_features) = get_msa_and_templates( + jobname=self.description, + query_sequences=self.sequence, + a3m_lines=False, + result_dir=plPath(result_dir), + msa_mode='single_sequence', + use_templates=True, + custom_template_path=None, + pair_mode="none", + host_url=DEFAULT_API_SERVER, + user_agent='alphapulldown') + + else: logging.info("You chose to calculate MSA with mmseqs2.\nPlease also cite: " "Mirdita M, Schütze K, Moriwaki Y, Heo L, Ovchinnikov S and Steinegger M. " From 8231ad10d8d23896f5e96b01aed85385dfe6f5a8 Mon Sep 17 00:00:00 2001 From: Quentin Rouger <144003341+Qrouger@users.noreply.github.com> Date: Tue, 18 Nov 2025 16:43:01 +0100 Subject: [PATCH 2/4] Add use_templates flag to make_mmseq_features call --- alphapulldown/scripts/create_individual_features.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/alphapulldown/scripts/create_individual_features.py b/alphapulldown/scripts/create_individual_features.py index bf54300d..50284860 100644 --- a/alphapulldown/scripts/create_individual_features.py +++ b/alphapulldown/scripts/create_individual_features.py @@ -98,6 +98,7 @@ flags.DEFINE_string('obsolete_pdbs_path', None, '') flags.DEFINE_enum('db_preset', 'full_dbs', ['full_dbs', 'reduced_dbs'], '') flags.DEFINE_boolean('use_precomputed_msas', False, '') +flags.DEFINE_boolean('use_templates', True, '') flags.DEFINE_bool("use_mmseqs2", False, "") flags.DEFINE_bool("save_msa_files", False, "") flags.DEFINE_bool("skip_existing", False, "") @@ -260,7 +261,7 @@ def create_and_save_monomer_objects(monomer, pipeline): with open(metadata_output_path, "w") as meta_data_outfile: json.dump(meta_dict, meta_data_outfile) if FLAGS.use_mmseqs2: - monomer.make_mmseq_features(DEFAULT_API_SERVER=DEFAULT_API_SERVER, output_dir=FLAGS.output_dir, use_precomputed_msa=FLAGS.use_precomputed_msas) + monomer.make_mmseq_features(DEFAULT_API_SERVER=DEFAULT_API_SERVER, output_dir=FLAGS.output_dir, use_precomputed_msa=FLAGS.use_precomputed_msas, use_templates=FLAGS.use_templates) else: monomer.make_features( pipeline=pipeline, output_dir=FLAGS.output_dir, From 6cb7c6acfa2bc26c7bf70b47f3968f97101070e0 Mon Sep 17 00:00:00 2001 From: Quentin Rouger <144003341+Qrouger@users.noreply.github.com> Date: Tue, 18 Nov 2025 16:58:25 +0100 Subject: [PATCH 3/4] Change use_templates parameter to False --- alphapulldown/objects.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/alphapulldown/objects.py b/alphapulldown/objects.py index 0a1543cd..d2aaf001 100644 --- a/alphapulldown/objects.py +++ b/alphapulldown/objects.py @@ -189,7 +189,7 @@ def make_mmseq_features( output_dir=None, compress_msa_files=False, use_precomputed_msa=False, - use_templates = True, + use_templates=False, ): """ A method to use mmseq_remote to calculate MSA. From eddfa65851e1340b1a476a61086111a4c4559d73 Mon Sep 17 00:00:00 2001 From: Quentin Rouger <144003341+Qrouger@users.noreply.github.com> Date: Wed, 19 Nov 2025 15:55:23 +0100 Subject: [PATCH 4/4] Change template flag to re_search_templates_mmseqs2 --- alphapulldown/scripts/create_individual_features.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alphapulldown/scripts/create_individual_features.py b/alphapulldown/scripts/create_individual_features.py index 50284860..318a59cc 100644 --- a/alphapulldown/scripts/create_individual_features.py +++ b/alphapulldown/scripts/create_individual_features.py @@ -98,7 +98,7 @@ flags.DEFINE_string('obsolete_pdbs_path', None, '') flags.DEFINE_enum('db_preset', 'full_dbs', ['full_dbs', 'reduced_dbs'], '') flags.DEFINE_boolean('use_precomputed_msas', False, '') -flags.DEFINE_boolean('use_templates', True, '') +flags.DEFINE_boolean('re_search_templates_mmseqs2', False, '') flags.DEFINE_bool("use_mmseqs2", False, "") flags.DEFINE_bool("save_msa_files", False, "") flags.DEFINE_bool("skip_existing", False, "") @@ -261,7 +261,7 @@ def create_and_save_monomer_objects(monomer, pipeline): with open(metadata_output_path, "w") as meta_data_outfile: json.dump(meta_dict, meta_data_outfile) if FLAGS.use_mmseqs2: - monomer.make_mmseq_features(DEFAULT_API_SERVER=DEFAULT_API_SERVER, output_dir=FLAGS.output_dir, use_precomputed_msa=FLAGS.use_precomputed_msas, use_templates=FLAGS.use_templates) + monomer.make_mmseq_features(DEFAULT_API_SERVER=DEFAULT_API_SERVER, output_dir=FLAGS.output_dir, use_precomputed_msa=FLAGS.use_precomputed_msas, use_templates=FLAGS.re_search_templates_mmseqs2) else: monomer.make_features( pipeline=pipeline, output_dir=FLAGS.output_dir,