bytedance / bytedance/Protenix

Ternary complex pocket residue constraints

Open
#232 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
2.1k
Forks
310
PR merge metrics
No merged PRs in 30d

Description

Restricting the residues of the B chain of the trimeric complex, why is the predicted result not in line with the position of the B link contact at the specified residue site?

```
"constraint": {
"pocket": {
"binder_chain": {
"entity": 3,
"copy": 1
},
"contact_residues": [

{
"entity": 2,
"copy": 1,
"position": 171
},
{
"entity": 2,
"copy": 1,
"position": 174
},
{
"entity": 2,
"copy": 1,
"position": 175
}
],
"max_distance": 4.0
```
The output results also show that there are limitations that can be read.
`2026-02-13 10:50:48,749 [/home/data2/zhj/anaconda3/envs/protenix/lib/python3.12/site-packages/protenix/data/constraint/constraint_featurizer.py:367] INFO protenix.data.constraint.constraint_featurizer: #pocket:3
2026-02-13 10:50:48,761 [/home/data2/zhj/anaconda3/envs/protenix/lib/python3.12/site-packages/protenix/data/constraint/constraint_featurizer.py:392] INFO protenix.data.constraint.constraint_featurizer: Loaded constraint feature: #atom contact:0 #contact:0 #pocket:3
2026-02-13 10:50:48,764 [/home/data2/zhj/anaconda3/envs/protenix/lib/python3.12/site-packages/protenix/data/constraint/constraint_featurizer.py:197] INFO protenix.data.constraint.constraint_featurizer: loaded pocket info:{'binder_chain_id': ['C'], 'binder_res_name': ['l01'], 'binder_atom_name': ['C1', 'C10', 'C11', 'C12', 'C13', 'C14', 'C15', 'C16', 'C17', 'C18', 'C19', 'C2', 'C20', 'C21', 'C22', 'C23', 'C24', 'C25', 'C26', 'C27', 'C28', 'C29', 'C3', 'C30', 'C31', 'C32', 'C33', 'C34', 'C35', 'C36', 'C37', 'C38', 'C39', 'C4', 'C40', 'C41', 'C42', 'C43', 'C44', 'C45', 'C5', 'C6', 'C7', 'C8', 'C9', 'N1', 'N2', 'N3', 'N4', 'N5', 'O1', 'O10', 'O11', 'O12', 'O2', 'O3', 'O4', 'O5', 'O6', 'O7', 'O8', 'O9'], 'pocket_chain_id': ['B'], 'pocket_res_name': ['LEU', 'PHE'], 'pocket_atom_name': ['CA'], 'distance': 4.0}`

Contributor guide

Open the contributing guide

Research direction

Start with the supplied pocket constraint and the logged paths and line references in protenix/data/constraint/constraint_featurizer.py. Reproduce the ternary input, inspect how entity/copy and residue positions become chain B contacts, and compare the resulting constraint features with the prediction. Done means explaining the reported mismatch or identifying a concrete constraint-processing limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
bioinformatics, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.