sokrypton / sokrypton/ColabFold

Custom template per chain

Open
#412 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Jupyter Notebook
Stars
2.9k
Forks
747
PR merge metrics
No merged PRs in 30d

Description

It currently seems like the input custom template path is applied for every chain in the input.

https://github.com/sokrypton/ColabFold/blob/main/colabfold/batch.py#L768

        if custom_template_path is not None:
            template_paths = {}
            for index in range(0, len(query_seqs_unique)):
                template_paths[index] = custom_template_path

Which means it is currently impossible to provide a set of templates for each chain. This differs from the mmseq2 server setup, which will generate a indexed set of template paths for each chain:

        a3m_lines_mmseqs2, template_paths = run_mmseqs2(
            query_seqs_unique,
            str(result_dir.joinpath(jobname)),
            use_env,
            use_templates=True,
            host_url=host_url,
        ) 
# template_paths will be a list of length len(query_seqs_unique)

So, there's a lack of feature parity between Colab's implementation of templates and a custom template. I'd be happy to contribute a fix for this, but there's an implementation discussion to be had as to how to extend custom_template_path to be a list + amenable to multimers.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in colabfold/batch.py around line 768 and compare the custom-template handling with the run_mmseqs2 call shown in the issue. Clarify the accepted custom_template_path shape and its behavior for multimers, then implement feature parity so each chain can receive its intended templates.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
bioinformatics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.