I know how to traverse through structures, models, residues, and atoms in a protein chain using BioPython (which is very easy).
How can I identify donor and acceptor atoms in a chain?
Bioinformatics Stack Exchange is a question and answer site for researchers, developers, students, teachers, and end users interested in bioinformatics. It only takes a minute to sign up.Sign up to join this community
A hydrogen bond donor heavy atom is one that is protonated, while the acceptor has a lone pair. If you talking about amino acids, then it's simple as they are fixed.
||backbone carboxyl C||sterically hindered and electrophilic||nucleophilic attack|
||backbone carboxyl O||acceptor||SS|
||C-terminal oxygen||acceptor||may be protonated especially if a membrane embedded C-terminus|
||sidechain hydroxyl||donor||SS: may form ST turns. Fairly uncommon: may be a donor|
||sidechain carboxyl/amide O||acceptor||SS: may form Asx turns|
||sidechain carboxyl/amide O||acceptor|
||terminal admide N||donor||the direction of an Asn/Gln may be accidentally filled if manually assigned as N/O have the same density in X-ray crystals|
Water can be both a donor and an acceptor. Two charged residues form a salt bridge more so than a hydrogen bond, because the interaction is driven by the Coulomb electrostatic forces of the two heavy atoms.