OpenFreeEnergy / OpenFreeEnergy/openfe

Protein Component -- Protonation control

Open
#1,342 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
331
Forks
56
Avg merge
3d 9h
Merged PRs (30d)
13

Description

Hello!

I am working with a protein--ligand system in which ligand binding is coupled with a proton transfer. I would like to simulate my protein component with some alternate protonation states, but I am having trouble loading in my protein component.

I am considering a deprotonated lysine. Usually this is easily represented in the Amber ff as a "LYN" residue, rather than as a "LYS".
However, when I try to load this protein from a pdb, I get the error that LYN is unknown: ValueError: Unknown ion: N in residue LYN at index 232.

protein = openfe.ProteinComponent.from_pdb_file(
                    f"protein_pdb/holo-raised_LYN{ res }.pdb",
                    name=f"LYN{ res }")

My question is: how to treat non-standard side-chain protonations in openfe?

Thanks!

holo-raised_LYN232.txt
(Here is an example .pdb, as a .txt)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure with ProteinComponent.from_pdb_file and the linked holo-raised_LYN232.txt PDB example. Trace how residue and ion names are validated, then verify that the requested non-standard protonation state can be loaded without the unknown-ion error and add or run coverage for this example.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.