extract (cut out the active-site cluster model)¶
extract cuts the residues around a substrate out of a protein–ligand PDB/mmCIF file, caps each cut bond with a hydrogen, and counts the charge of the resulting cluster model.
What it is for¶
Building a cluster model: make the active-site model that
all,opt,tsopt, and the other commands compute on.Cutting several states the same way: give reactant and product structures with the same atom order in one run, and every model gets the same residues and the same boundary.
Handling non-standard residues: register residue names from MCPB.py or similar tools as amino acids with
--modified-residue.
To choose how large the model should be, see Building the cluster model.
Examples¶
The input needs every hydrogen and the element symbols in columns 77–78.
1. Select by residue ID with a total ligand charge¶
Give the substrate as chain:name:number and its total charge as one number.
pdb2reaction extract -i complex.pdb -c 'A:GPP:301' -o model.pdb -l -3 --out-json
A successful run exits with code 0, and the console prints [extract] Atoms after truncation: N and [extract] Link-H to add: M. The model has N + M atoms, M of them cap hydrogens. The charge is on the line [extract] Total active site model charge. Open model.pdb in a viewer and check that the residues of the reaction are in the model. Pass model.pdb to the next command with this total charge as -q.
2. Substrate given as a PDB file¶
Pass a PDB file of the substrate as the center, with a charge for each residue name.
pdb2reaction extract -i complex.pdb -c substrate.pdb -o model.pdb -l 'GPP:-3,SAM:1'
The substrate file must have the same coordinates as the complex (within 0.001 Å).
3. Select by residue name¶
Name the residues; every residue with that name is a center.
pdb2reaction extract -i complex.pdb -c 'GPP,SAM' -o model.pdb -l 'GPP:-3,SAM:1'
4. Several structures in one run¶
List the reactant and product after one -i; both get the same residues and caps, written as one multi-MODEL PDB.
pdb2reaction extract -i complex_R.pdb complex_P.pdb -c 'A:GPP:301,A:SAM:302' \
-o model_multi.pdb -l 'GPP:-3,SAM:1'
Pass -o model_R.pdb -o model_P.pdb instead to get one file per input.
5. Non-standard residues (--modified-residue)¶
Tools such as Amber’s MCPB.py give metal-coordinating residues non-standard names (HD1, HE1, CM1, AP1). extract does not know these names, so it neither cuts their main chain nor caps them, and it prints:
[extract] WARNING: Residue HD1 83 may be an amino acid (has N, CA, C, O) but is not recognized as a standard residue name. Backbone truncation was not applied. Consider preparing the active site model manually.
Register the names as amino acids; NAME:charge sets the charge, and a bare NAME counts as 0.
pdb2reaction extract -i complex.pdb -c 'A:SUB:301' -o model.pdb \
--modified-residue 'HD1,HE1'
NAME:charge also overrides a built-in charge for this run (LYS:0 for a neutral lysine). The names in the appendix, including phosphorylated residues and D-amino acids, are already built in and need no registration. When --modified-residue is not enough, build the model by hand.
How it works¶
Centers:
-clists the substrate, cofactors, and metals. Each entry is a residue selector, from the most specificA:TYR:44(chain:name:number) throughA:SAM, a name such asSAM, or a number, to a PDB/mmCIF file of the substrate.--selected-resnadds residues in the same forms without starting a distance search.Neighbors: a residue joins the model when one of its atoms lies within
-r(default 2.6 Å) of a center atom. Waters count unless--no-include-h2ois given, and with--exclude-backbonecontacts through main-chain atoms of amino acids do not count. Three kinds of residues are then added: the disulfide partner of a selected cysteine (S–S ≤ 2.5 Å), the N-side neighbor of a selected proline, and, without--exclude-backbone, the two residues peptide-bonded to an amino acid whose main-chain atom touches a center.Main-chain cuts: a run of consecutive amino acids keeps its internal main chain and is cut at both ends so that each end stops at CA; a residue whose neighbors are not in the model is cut at CB and keeps only its side chain. Amino acids in
-cfollow the same rule; at the default-rthe residues peptide-bonded to them join, so they keep all their atoms. Prolines keep their ring. With--exclude-backbone, amino acids lose all main-chain atoms, except between amino acids in-cthat are peptide-bonded to each other. Waters and non-amino-acid residues are never cut.Cap hydrogens: where a cut leaves CA or CB without its bonded partner (CB–CA, CA–N, CA–C; only CA–C for proline), a hydrogen is placed 1.09 Å from that carbon along the old bond. The caps are written after a
TERrecord asHETATMatomsHLin residueLKH, chainL.Charge: amino acids and ions take their charges from built-in tables, waters are 0, and other residues are 0 unless
-lgives them a charge.
Charge summary¶
-l takes either a mapping such as 'GPP:-3,SAM:1' or one number. Unknown residues are those that the appendix does not list as amino acids, ions, or waters. A number is split evenly over the unknown residues in -c, or over all unknown residues when -c has no unknown residue; in example 1, all of −3 goes to GPP. With a mapping, unknown residues that are not listed stay 0. The console prints the protein, ligand, and ion charges and then Total active site model charge. With several inputs, the summary is for the first one.
Several structures¶
With several inputs, each structure selects its residues, and the union of the selections is applied to every structure, so all models have the same atoms and the same caps. Each model keeps its own coordinates. The console prints [extract:multi] Atoms after truncation (model k): N for each model and [extract:multi] link-H targets common across models: M once.
Cap hydrogen and frozen atoms¶
opt, tsopt, freq, irc, path-opt, path-search, scan, scan2d, scan3d, and all freeze the parent atoms of the cap hydrogens by default (--freeze-links; sp does not), so the boundary keeps its geometry during optimizations and path searches:
Forces: frozen atoms get zero force.
Hessian: frozen atoms are left out of the Hessian.
Vibrational analysis: with frozen atoms,
freqruns PHVA (partial Hessian vibrational analysis) on the movable atoms.
--freeze-atoms and YAML geom.freeze_atoms (1-based) add more atoms; all lists are combined. See Freeze atoms and restrain distances.
Output files¶
./
├─ model.pdb # cluster model; cap hydrogens follow a TER record
├─ model.cif # mmCIF input, or PDB input too large for the PDB columns
├─ result.json # with --out-json, next to the first output file
└─ summary.json # same content as result.json (with --out-json)
Inputs |
|
Output |
|---|---|---|
One |
not given |
|
Several |
not given |
|
Several |
one path |
one multi-MODEL PDB |
Several |
one path per input |
one PDB per input |
Any other number of -o paths stops with an error. Missing parent directories are created. result.json holds the atom counts, the charges, and the settings used; see JSON Output Reference.
Main options¶
Option |
Type |
Default |
Description |
|---|---|---|---|
|
path(s) |
(required) |
Protein–ligand PDB/mmCIF files. List several after one |
|
text |
(required) |
Center residues or a PDB/mmCIF file of the substrate (e.g. |
|
path(s) |
see Output files |
Output PDB path(s) |
|
float |
|
Distance cutoff (Å) around center atoms. |
|
float |
|
Second cutoff (Å) between atoms other than C and H |
|
text |
|
Residues to add without a distance search, in the same forms as |
|
flag |
|
Include waters (HOH, WAT, H2O, DOD, TIP, TIP3, SOL) |
|
flag |
|
Remove main-chain atoms from amino acids, except between peptide-bonded |
|
flag |
|
Add cap hydrogens where a cut leaves CA or CB without its partner |
|
text |
|
Residue names to treat as amino acids, as |
|
text |
|
Total charge of the unknown residues (ligands), or charge per residue name (e.g. |
|
flag |
|
Write |
See the generated CLI reference for every option.
Notes¶
-r 0disables radius-based expansion: the model is built from the-cand--selected-resnresidues, plus the disulfide partners and the N-side neighbor of a proline that step 2 adds.Model size: check for your system that the result does not change when the model grows. A larger
-rcosts more and does not always improve accuracy.Names match everywhere: a name such as
TYRselects every TYR in every chain, with a warning when there is more than one.TYR:44means chain TYR: with two fields the first is always the chain, and the second is a number or a name, so writeA:TYR:44. In a PDB with an empty chain column, use the name or the number alone.One form per list: a list that mixes names and numbers, such as
'SAM,44', stops with an error.Caps only at CA and CB: other cut bonds get no cap. When such a cut bond is between nonmetal atoms,
extractwarns and still writes the model, andallstops before the calculations; check the bonds it lists, the caps, and the charge, or build the model by hand.Same atoms in every input: inputs with different atom counts or order stop with
[multi] Atom count mismatchor[multi] Atom order mismatch.Element columns: with a blank element column,
extractstops withElement symbols are missing in '…', so runadd-elem-infofirst.Alternate locations (altLoc):
extractkeeps one conformer per residue; the rule is in mmCIF and large structures.Built-in residue names follow Amber/CHARMM. If a PDB residue shares a name with a different chemical component, give the intended charge with
--modified-residue NAME:charge.
See also¶
Building the cluster model — make the model smaller or larger, and freeze atoms
all — the full workflow; runs
extractwith-cpath-search — minimum-energy path (MEP) search on the extracted model
scan — staged scan on the extracted model
add-elem-info — fill missing element columns before extraction
Common options and selectors — residue selectors and charge
Troubleshooting — extraction errors
Glossary — active-site model, cluster model, cap hydrogen
Appendix: PDB naming requirements and reference lists¶
Use this appendix when extract classifies a residue or assigns a charge wrongly because of non-standard residue or atom names. With standard PDB names you can skip it.
Important
extract recognizes amino acids, ions, waters, and main-chain atoms by their PDB residue and atom names. Inputs must follow the standard PDB chemical-component names.
Amino acids¶
Residue names treated as amino acids, with their nominal charges. Only these residues get main-chain cuts, caps, and amino-acid charges.
Standard 20 (charges reflect physiological pH):
Neutral:
ALA,ASN,CYS,GLN,GLY,HIS,ILE,LEU,MET,PHE,PRO,SER,THR,TRP,TYR,VALPositive (+1):
ARG,LYSNegative (−1):
ASP,GLU
Protonation / tautomer variants (Amber / CHARMM style): HIP (+1, fully protonated His), HID (0, Nδ-protonated His), HIE (0, Nε-protonated His), ASH (0, neutral Asp), GLH (0, neutral Glu), LYN (0, neutral Lys), ARN (0, neutral Arg), TYM (−1, deprotonated Tyr phenolate).
Phosphorylated: dianionic (−2) SEP, TPO, PTR; monoanionic (−1) S1P, T1P, Y1P; phospho-His (phosaa19SB) H1D (0), H2D (−1), H1E (0), H2E (−1).
Cysteine variants: CYX (0, disulfide), CSD (−1, sulfinic acid), OCS (−1, cysteic acid), CYM (−1, deprotonated Cys).
Lysine variants / carboxylation: MLY (+1), KCX (−1, Nz-carboxylic acid).
D-amino acids (19): DAL, DAR, DSG, DAS, DCY, DGN, DGL, DHI, DIL, DLE, DLY, MED, DPN, DPR, DSN, DTH, DTR, DTY, DVA.
Other modified: CGU (−2, γ-carboxy-glutamate), CGA (−1), PCA (0, pyroglutamate), MSE (0, selenomethionine), OMT (0, methionine sulfone), HYP (0, hydroxyproline); also ASA, CIR, FOR, MVA, IIL, AIB, HTN, SAR, NMC, PFF, NFA, ALY, AZF, CNX, CYF (all 0).
N-terminal variants (N prefix): NALA (+1), NARG (+2), NASP (0), NGLU (0), NLYS (+2), … plus ACE (0), NTER (+1, generic).
C-terminal variants (C prefix): CALA (−1), CARG (0), CASP (−2), CGLU (−2), CLYS (0), … plus NHE (0), NME (0), CTER (−1, generic).
The N- and C-prefixed Amber names are read as the standard residue (NALA → ALA); the terminal charge is counted only while the model keeps the N-terminal H1–H3 (H2 and H3 for proline) or OXT.
Main-chain atoms¶
Atom names treated as the main chain of an amino acid; under --exclude-backbone they are removed, except between peptide-bonded amino acids in -c:
N, C, O, CA, OXT, H, H1, H2, H3, HN, HA, HA2, HA3
Ions¶
Ion residue names and their formal charges:
Charge |
Residue names |
|---|---|
+1 |
|
+2 |
|
+3 |
|
+4 |
|
−1 |
|
Waters¶
Water residue names (included by default with --include-h2o, charge 0):
HOH, WAT, H2O, DOD, TIP, TIP3, SOL