generatebio / chroma

A generative model for programmable protein design
Apache License 2.0
700 stars 90 forks source link

Create functional proteins from a given protein Template/Profile? #50

Open Travis13197 opened 6 months ago

Travis13197 commented 6 months ago

Thank you for developing Chroma. Chroma is such an excellent generative AI tool for de novo protein design. I would like to inquire about how one can use Chroma to design new functional proteins (not just substructures), for instance:

  1. What is the process for leveraging Chroma to create proteins inspired by the functions of existing enzymes? Could one, for example, utilize a protein template—such as a specific domain extracted from a PDB file, a MSA file, a pre-trained HMM profile etc. —for guidance in this design process?
  • A point of note: In given demo file, it appears that the CATH inputs are restricted to three levels (e.g., "3.30.40"), yet four levels could potentially be more beneficial for the design of a functional protein? Is there a way to incorporate this additional level of detail in Chroma's design process?
  1. In the context of scaffold design, is there a method within Chroma to designate certain critical amino acid residues as invariant hotspots or a interface? ensuring they remain unaltered throughout the design process?
Zebreu commented 6 months ago

Hey @Travis13197, for question 2 you can use the selection language, here's a minimal example:

chroma = Chroma()
protein = Protein("5SV5", device="cuda")
chroma.design(protein, design_selection="not resid 1-10") # keeps residues 1-10 fixed

You can do the same thing with conditioners. https://github.com/generatebio/chroma/issues/37 has a discussion of a few methods.

For question 1, it's up to you to create your own classifier to guide Chroma, you could start from their CATH classifier and modify it. It should work as long as it follows the conditioner template/interface.