diff --git a/alphapulldown/objects.py b/alphapulldown/objects.py index ad274644..d2aaf001 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=False, ): """ 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. " diff --git a/alphapulldown/scripts/create_individual_features.py b/alphapulldown/scripts/create_individual_features.py index bf54300d..318a59cc 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('re_search_templates_mmseqs2', False, '') 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.re_search_templates_mmseqs2) else: monomer.make_features( pipeline=pipeline, output_dir=FLAGS.output_dir,