transfer_coords¶
A transfer_coords directive copies atomic coordinates from a selected
subset of a donor PDB file directly onto the matching atoms of the
pipeline system, overwriting their positions without modifying any
topology. This makes it suitable for non-rigid changes — re-modeled
loops, isolated energy minimization of a ligand or domain, manual
repositioning in an external editor — that cannot be represented as a
single rigid-body transformation.
An optional pre-alignment step can be requested. When the donor was
prepared in a different coordinate frame (e.g. the loop was minimized as
a standalone fragment), supplying align_donor_sel and
align_mobile_sel causes the entire donor to be rigidly fitted to the
pipeline system before the transfer, so that the transferred coordinates
land in the correct frame.
Parameters¶
donor_pdb(required)Path to the donor PDB file.
donor_psf(optional)Path to a donor PSF file. When provided both files are loaded so that topology attributes (segment name, residue type, etc.) can be used in VMD atomselect strings. When omitted the donor is loaded as a plain PDB.
donor_sel(required)VMD atomselect string identifying which atoms to copy from the donor.
mobile_sel(required)VMD atomselect string identifying which atoms of the pipeline system to overwrite. Must select the same number of atoms as
donor_selin the same order.align_donor_sel(optional)VMD atomselect string for donor atoms used in the pre-alignment fit. Must be supplied together with
align_mobile_sel; providing only one of the two is an error.align_mobile_sel(optional)VMD atomselect string for pipeline atoms used in the pre-alignment fit. Must be supplied together with
align_donor_sel.
Note
Both the alignment pair and the transfer pair are checked for atom-count congruency before use. If either check fails, VMD prints a descriptive error and exits with a non-zero code, which pestifer surfaces as a task failure. Atom ordering within each congruent pair is the user’s responsibility.
Unlike align, which moves
the pipeline system to match a reference, transfer_coords moves
donor coordinates into the pipeline system.
Examples¶
Copy coordinates of a re-modeled loop (same coordinate frame, no pre-alignment needed):
tasks:
- manipulate:
mods:
transfer_coords:
- donor_pdb: remodeled_loop.pdb
donor_sel: "chain A and resid 45 to 60"
mobile_sel: "chain A and resid 45 to 60"
Inject coordinates from a donor that was prepared as a standalone fragment (different coordinate frame — pre-alignment required):
tasks:
- manipulate:
mods:
transfer_coords:
- donor_pdb: minimized_loop.pdb
donor_sel: "resid 45 to 60"
mobile_sel: "chain A and resid 45 to 60"
align_donor_sel: "backbone"
align_mobile_sel: "chain A and backbone"
Combining with align in one task (first align the whole system, then inject a refined loop):
tasks:
- manipulate:
mods:
align:
- ref_pdb: reference.pdb
mobile_sel: "backbone"
transfer_coords:
- donor_pdb: refined_loop.pdb
donor_sel: "resid 45 to 60"
mobile_sel: "chain A and resid 45 to 60"
align_donor_sel: "backbone"
align_mobile_sel: "chain A and backbone"