In this section you can find several biologically relevant examples of different queries.
Find all post-translational modified aminoacids
- i.e. Those incorporated in the protein backbone and not hetero atoms
NotAminoAcids(). Filter(lambda m: m.Count(HetResidues()) == 0)
NotAminoAcids(). Filter(lambda m: m.Contains(HetResidues()).Not())
Find all heteroatoms, which are not covalently bonded to the protein structure
- Takes all the heteroatoms and queries them for being connected to any amino acid of a given protein
HetResidues(). Filter(lambda m: m.IsNotConnectedTo(AminoAcids()))
Identify Zinc fingers
- There is a variety of different zinc fingers based on the surrounding residues, in our example we will focus on those comprising two zinc and two his residues (Cys2His2).
Atoms("Zn"). ConnectedResidues(1). Filter(lambda m: (m.Count(Residues("His")) == 2) & (m.Count(Residues("Cys")) == 2))
At first the zinc atoms are selected together with their bonded residues. Additionally, these motives are filtered according to the content of their amino acids.
Identify all the residues, which contain a sugar ring
- This task can be decomposed to two individual subtasks, since sugars contain either pentose or furanose ring. Pentose ring contains 4 carbon and an oxygen atom. Similarly, furanose ring is composed of 5 carbon atoms and an oxygen atom.
Or(Rings(4 * ["C"] + ["O"]).ConnectedResidues(0), Rings(5 * ["C"] + ["O"]).ConnectedResidues(0))
Ring()queries, we select only the ring part of the molecule. By extending the
Identify all binding sites of PA-IIL lectin in different organisms
- Binding sites of this type of lectin comprise of two calcium atoms close to each other and a binded sugar residue.
Near(4, Atoms("Ca"), Atoms("Ca")) .ConnectedResidues(1) .Filter(lambda l: l.Count(Or(Rings(5 * ["C"] + ["O"]), Rings(4 * ["C"] + ["O"]))) > 0) .Filter(lambda l: l.Count(Atoms("P")) == 0)
Near(4, Atoms("Ca"), Atoms("Ca"))
(Rings(5 * ["C"] + ["O"]))
(Rings(4 * ["C"] + ["O"]))