sokrypton / sokrypton/ColabFold
Potential optimization
Nobody has claimed this yet.
- Dominant language
- Jupyter Notebook
- Stars
- 2.9k
- Forks
- 747
- PR merge metrics
- No merged PRs in 30d
Description
Hi, I wonder if it's possible to add a deduplication step before calculating MSAs for colabfold. I noticed that when generating MSAs for a large batch of alphafold2-multimer-v3 analyses, there are quite some common proteins across different protein:protein pairs, and the MSAs of those common proteins got calculated repeatedly each time they appear. For example, if I duplicate proteinA:proteinB 1000 times, then colabfold will use mmseqs to calculate the MSA of proteinA 1000 times and the MSAs of proteinB 1000 times, while generating MSA for each of proteinA/B should suffice.
Additionally, when using mmseqs with multiple GPUs, I noticed that the precalculated indices will be loaded and split across GPUs. For a 80GB A100 or H100, the entire database can fit in one GPU pretty nicely. So I wonder if it's possible to adjust how the databases are loaded into GPU based on the size of GPU memory. For example, would it be possible to keep a copy of the database in each of the A100/H100 to reduce the communication time, especially if multiple GPUs are not connected by NVLINK? Thanks!
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
The issue names no files, tests, or entry points. Start by locating ColabFold's MSA-generation path and its mmseqs multi-GPU database-loading path; done means repeated proteins are processed once and GPU placement can account for available memory, with performance evidence for the proposed cases.
Written by the indexing model from the issue text.
Assessment
- Domain
- bioinformatics, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100