moleculekit.tools.preparation_customres module#
- class moleculekit.tools.preparation_customres.CustomNucleicResidue(atoms, ref)#
Bases:
NucleicCustom nucleic-acid residue class - the
nacounterpart ofCustomResidue. pdb2pqr resolves a residue to amino vs nucleic by looking its name up inpdb2pqr.aathenpdb2pqr.na; registering a modified nucleotide (5MC, …) here routes it through the nucleic path.- set_state()#
Adds the termini for all inherited objects.
- class moleculekit.tools.preparation_customres.CustomResidue(atoms, ref)#
Bases:
AminoCustom residue class. Hack for pdb2pqr which requires one class per residue in pdb2pqr.aa module
- class moleculekit.tools.preparation_customres.CustomSugarResidue(atoms, ref)#
Bases:
NucleicCustom monosaccharide residue class, registered under pdb2pqr’s nucleic-acid module rather than its amino-acid one.
This is not about nucleic-acid chemistry: it is the only registration path that avoids two amino-acid-only assumptions pdb2pqr’s
Aminomachinery hard-codes and no sugar can satisfy.Biomolecule. set_reference_distance(called unconditionally by debumping) requires everyaa.Aminoresidue to have aCAatom and raises otherwise; and the rotamer-debumping pass only ever touchesaa.Aminoresidues in the first place. Registering sugars asna.Nucleicinstead gives them the same heavy-atom-repair and hydrogen-addition treatment as a modified nucleotide (both paths are gated onisinstance(residue, (aa.Amino, na.Nucleic))) without tripping theCArequirement, and without pdb2pqr attempting to debump them.A sugar is also never a real nucleic-acid 5’/3’ terminus: its glycosidic attachment point (to a protein anchor, another sugar, or nothing for a free reducing end) is handled afterwards by moleculekit’s own
_apply_glycan_modifications, not by a pdb2pqr terminus patch.n_term_blocked/c_term_blockedare set unconditionally here (the same flagsmoleculekit.tools.preparation._stamp_non_termini()sets per-residue for protein junctions) soBiomolecule.assign_termininever applies a 5TERM/3TERM patch to a sugar just because it happens to sit first or last in pdb2pqr’s chain grouping.- set_state()#
Adds the termini for all inherited objects.