sokrypton / sokrypton/ColabFold
Custom template per chain
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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