evolutionaryscale/esm

Folding Multimers

ejmeitz opened this issue · 1 comments

I have been playing with ESM3 and trying to fold multimers in a manner similar to ESM fold. I was wondering if there is an unofficially supported/recommended way of doing this as I noticed that the Appendix A.1.7.3.2 mentions that in stage 2 ESM3 was also trained on multimer data. I also noticed in the source code for ProteinChain there are a couple methods (as_complex, and concat) and the mention of a future ProteinCompelx class that seem to hint at multimer support. I am hoping to hack something together before official support comes out, and was looking for guidance.

I tried going about things the way ESM fold does by adding 25 glycines and incrementing the residue index by some large number, but ESM3 uses a rotary embedding and does not directly embed residue index like ESM fold. Just putting 25 glycines runs fine, but seems to mess up the structures in non-physical ways.

Any suggestions/hints would be great, thanks!

Edit: I now see #35, but still wondering if there's a DIY way I can do this?

I suggest looking at other alternatives until we come out with an officially supported multimer model. You will be able to use glycines to hack this up, but I think the performance will not be good. Sorry about that!