Load from SDF, percieve residues
Load from PDB, fill in details according to known residues?
Load a structure with missing atoms
Detect unnatural AA and assign parameters, gracefully handle backbone interface w/ natural AAs
Take a canonical protein and covalently modify with sugar/PTM
Create/break disulfide/other covalent bond between distant parts of chain
Support manually filling in missing atoms/loops
Change protonation state of a residue
Rename a residue
Support iteration over Biopolymer.residues
when residues are separated by
Attach a cofactor like heme, which connects to 4 other residues
Get the graphs of unique monomers in this biopolymer/topology.
Semi-Persistent biopolymer-level info (eg secondary structure prediction) →
Arbitrary metadata attached to biopolymer (eg. “Ala131 has metadata indicating it’s my favorite, then I chemically modify Ala131. Is there still a way to see it’s my favorite?”) → Don’t store arbitrary metadata. Arbitrary metadata will clash with cached data (under what conditions is it persistent?) and pydantic data models (data formats must be well-defined)
Add a PTM to this one alanine, and then find the new graph in the biopolymer/topology. → Biomonomer instance vs Biomonomer type. (SB + JW – Don’t persistently store Biomonomer type. Though we could offer on-the-fly grouping of identical biomonomer graphs though an API point)
All of these residues are HIS, but they have different protonation → flexible atom/residue/molecule bookkeeping
Prepare a system for export to X format, and comply with that format’s residue names where possible → Plugins. Atom group perception / flexible atom/molecule bookkeeping and grouping
I want to build a biopolymer from “AlaValGly” string. → PolymerConstructor plugins/classmethods for Biopolymers
I want to build a custom biopolymer with non-standard residues. → PTM. PolymerConstructor plugins/classmethods for Biopolymers. Possible reaction SMARTS support? Possible support for other manual API points for modifying chemistry.
I pulled this janky PDB from the internet which may or may not be complete, I want to solvate it, parameterize it, add a ligand, and simulate. → PDB loading / atom group perception / flexible atom/molecule bookkeeping and grouping. We will make no effort to fill in information if a molecule is incomplete.
I want to get the atom indices of residue X / I want to pull out all of the ‘backbone' atom indices. → PDB loading / atom group perception / flexible atom/molecule bookkeeping and grouping
I want to know the secondary structure of my protein. → Can offer export to MDTraj. Could also have an API point to do the analysis automatically and label the OFFBiopolymer accordingly.
I want to know where all of the strong h-bonds / disulphide bonds are. → We don’t want to handle h-bonds. Can offer export to MDTraj. Could offer API points that do SMARTS matching to find disulfide bonds.
I want to cluster groups of chains together so I can identify my aggregate protein blob I pulled from the PDB. → PDB loading / atom group perception / flexible atom/molecule bookkeeping and grouping.
Biopolymers in mixtures of non-aqueous solvents → Interaction with bulk materials
I stuck a fork in an electrical outlet and would like to covalently link a ligand to a biopolymer → PTM (medium)
I want to modify an arbitrary set of amino acids with this weird modification, like deprotonation, fluorination, or replacing a functional group → PTM (small)
Nothing would make me happier than slapping a protein on a metal surface and just seeing what happens (physisorption) → Interaction with bulk materials
That didn’t work, so I’m going to form some chemical bonds between the surface and the protein (chemisorption) → Covalent attachment to bulk materials
I half-assed a system preparation and I have coordinates for each atom by index and can probably match up the indices with a corresponding PDB file → Loading correctly-indexed coordinates from PDB
Something something membrane proteins → PTM infrastructure
I have a bunch of micelles and I’d like to group up each of the micelles separately → position-based atom group perception / molecule vs. residue bookkeeping and grouping.