I am trying to make a prediction application using the sequence of proteins.

If we think about the 6COU protein, I'm running the code below

pdb = PDBParser().get_structure("6c0u", "6c0u.pdb")

for residue in pdb.get_residues():

Some of the output looks like below when looking at residues. What is the function of the heteroatoms here, and follow up question;

When reading a paper on Binding Site Detection of Proteins, there is exactly one sentence in the paper.

"We first clean the input structure by removing all heteroatoms and solvent molecules from the protein structure using the Biopython47 library."

What is the meaning of this sentence if you are working on protein sequences, heteroatoms are not already there, what does it mean to delete them?

If you want to check the paper, here

enter image description here


1 Answer 1


The text you cited mentions "input structure", so they work with structures, not just "protein sequences".

Heteroatoms = atoms marked as HETATM in the PDB and mmCIF formats. In these formats each atom is listed as either ATOM or HETATM. These are not particularly meaningful categories, but they are there, so they are easy to use. It's a common practice to remove heteroatoms with grep -v ^HETATM.

Note that in the files from the Protein Data Bank not only solvent and ligands are marked as HETATM, but also "non-standard" amino-acids in a protein. An amino acid is considered standard if it can be genetically encoded. So in the files from the PDB selenocysteine is ATOM and selenomethionine is HETATM. Some programs don't follow these rules and output all protein residues as ATOM.

Removing heteroatoms works well for the vast majority of structures that have no modified residues. But in some cases it will remove also some protein residues, which may not intended.

Update: if you are wondering why there are ATOM and HETATM records, I have never came across the rationale. The PDB format specification has had both types of records since 1976. Different versions of the format spec use different wording, but the meaning is always similar:

  • ATOM records give atomic coordinates for "standard" groups.
  • HETATM records give atomic coordinates for "non-standard" groups.

(Although standard residues that not in a polymer are also HETATM.)

In the mmCIF format the same record is preserved in _atom_site.group_PDB with the description:

This data item is provided for compatibility with the original Protein Data Bank format, and only for that purpose.

Most of the structures have only standard residues in protein/DNA/RNA polymers, so removing HETATM records removes only ligands and solvent.

  • $\begingroup$ What I understood from the paper's goal is that deleting residues where heteroatoms are not empty. The value het appears blank (het=" ") next to 95% residue of protein. When you get rid of these, the protein sequence will shorten. Could they delete the residues here because they sees it as unimportant for predicting pocket (binding) area of protein? I'm also trying to estimate pocket area using protein sequence should I delete it too? $\endgroup$
    – drorhun
    Commented Jun 23, 2022 at 15:10
  • 1
    $\begingroup$ @drorhun In the image in your question the last residue in the protein chain is PHE (resseq=350). The next Residue objects are ligands and waters. $\endgroup$
    – marcin
    Commented Jun 27, 2022 at 12:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.