bytedance / bytedance/Protenix
Ternary complex pocket residue constraints
- 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
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