GeezerVison is showing github.com — Support of D-AminoAcids · Issue #993 · biojava/biojava
Support of D-AminoAcids #993DescriptionD-AminoAcids (https://proteopedia.org/wiki/index.php/Amino_Acids) are optical isomers or enantiomers (mirror images) of naturally occuring L-AminoAcids. They have the same structure but with opposite chirality.
When I parse structures that contain D-AminoAcids, they are parser as hetatoms.
Here are some of my notes:
- I tried adding the D-AminoAcids to StructureTools lookup table, but that was not enough.
HetatomImpl.isAminoAcid() returns false for cases like DAL (D-Alanine), because it tests whether PolymerType.PROTEIN_ONLY.contains(pt).
- Although PolymerType includes types for both
peptide("polypeptide(L)") and dpeptide("polypeptide(D)"), PolymerType.PROTEIN_ONLY contains the peptide type only.
- Also I see a lot of redundancy between
StructureTools and ChemCompTools. Is there a need to keep both of them?, or we can simply deprecate the former for the sake of the later.
I think a restructuring task can be done in conjunction with supporting longer ChecmComp names expected in 2022.
We can schedule refactoring this feature to the new version of BioJava. However, we need to start by supporting D-AminoAcids soon. Activityaalhossary commented on Nov 7, 2021 Here is another question for community discussion:
When an amino acid (regardless to being L or D) is the substrate (say in an oligopeptide), is it considered both polymeric and ligand or only one of them? josemduarte commented on Nov 20, 2021 I have some reservations about making d-aminoacids behave just as normal aminoacids in biojava. When they appear as part of polymers in the PDB, they appear mostly as short peptides, not as full proteins. Also there are a few cases in the PDB where there are engineered proteins composed of only D-aminoacids (e.g. in racemic mixture crystals) but in any case very rare and non-natural.
I can see how in some applications it might make sense to treat them as aminoacids, but I'd say that in most applications you would want them treated as something different from standard aminoacids. For instance, adding them to PolymerType.PROTEIN_ONLY seems dangerous to me for the general case. aalhossary commented on Nov 20, 2021 I agree to most of your points @josemduarte.
D-AminoAcids are not as frequent as L-AminoAcids (at least yet). However, they are aminoacids at the end of the day.
They have the natural right to possess getN(), getC(), getO() as all other free AminoAcids citizens (sorry for the silly joke :) ).
Depriving D-AminoAcids from being distinct from all other HetAtomGroups and from identifying a peptide bonds limits the users' research.
That said, it might be a good idea to craft an interface / type called AminoAcid, which includes all sorts of compounds that contain amino and carboxylic acid groups: L_AminoAcids, D_AminoAcids, and maybe Beta_AminoAcids (see below);
and another interface / type called NaturalAminoAcids, which is specific to the 20/21/22 naturally-occurring aminoacids.
Beta AminoAcids are amino acids in which there is an amine group on the carbon beta to a carboxylic acid group.
https://chem.libretexts.org/Ancillary_Materials/Reference/Organic_Chemistry_Glossary/Beta_Amino_Acid
https://en.wikipedia.org/wiki/Beta-peptide sbliven commented on Jan 4, 2022 Is it possible to write your code to use the Group interface (e.g. Group.getAtom("N") instead of AminoAcid.getN())? I also feel like supporting D-AA is unusual enough that it should not be the default.
Also I see a lot of redundancy between StructureTools and ChemCompTools. Is there a need to keep both of them?, or we can simply deprecate the former for the sake of the later.
StructureTools is older and has many features not included in ChemCompTools. If anything I would deprecate ChemCompTools. aalhossary commented on Jan 29, 2022
Is it possible to write your code to use the Group interface (e.g. Group.getAtom("N") instead of AminoAcid.getN())? I also feel like supporting D-AA is unusual enough that it should not be the default.
Yes. This exactly is how I worked around this problem in my code. However, this does not fix all problems. For example, D-Gly can form Isopeptide ponds just as same as Gly. Handling Gly and D-Gly differently is an unnecessary overhead to handle.
Overall, I -by contrary to your opinion- don't see supporting D-AA that unusual. At the end of the day, they are already present in nature and their use is becoming more, because the immune system does not recognize them as foreign bodies.
StructureTools is older and has many features not included in ChemCompTools. If anything I would deprecate ChemCompTools.
So, you recommend deprecating ChemCompTools for the sake of StructureTools, @sbliven? aalhossary commented on Jan 29, 2022 aalhossary commented on Jan 25, 2023 This conversation had been silent for a wile. Let's revive it. Maybe we can catch the next BioJava 7.0.0 release (#1035):
- @sbliven Do you recommend deprecating
ChemCompTools for the sake of StructureTools?
- @JonStargaryen It seems here that the current dictionary considers both D and L AminoAcids to be polymers (not nonstandard polymers). Please correct me if I am wrong.
MetadataMetadataDevelopmentNo branches or pull requestsIssue actions
|