orthonym.data.amino_acids#

Note

Internal API. Names and behaviour may change between releases.

Amino acid data for trivial name lookups.

Standard amino acids (the 20 proteinogenic amino acids) have trivial names that are preferred as IUPAC PINs over systematic names.

Expanded in a phase-02 with 88 OPSIN simpleGroup amino acid entries. These are complete molecules with canonical SMILES directly from OPSIN’s aminoAcids.xml vocabulary.

Stereochemistry note: Most natural amino acids are L-configured (S in CIP), but IUPAC prefers R/S notation over D/L for PINs.

orthonym.data.amino_acids.get_amino_acid_name(canonical_smiles, mol=None, with_descriptor=False)#

Get the trivial name for an amino acid if it’s a standard one.

Parameters:
  • canonical_smiles (str) – Canonical SMILES of the amino acid.

  • mol – optional RDKit Mol (rebuilt from canonical_smiles if None) — needed for the stereo-strip fallback / descriptor recovery.

  • with_descriptor (bool) – when True (free-amino-acid naming path, -07), also recover and emit the L/D configurational descriptor; L implicit, D explicit) and DEFER (return None) for a diastereomer the bare retained name cannot represent. Default False preserves the bare-name contract used by name_peptide (which adds its own stereo).

Returns:

Trivial name (optionally with a D- descriptor) if found, None otherwise.

Return type:

str | None

orthonym.data.amino_acids.is_standard_amino_acid(canonical_smiles)#

Check if SMILES matches a standard amino acid.

orthonym.data.amino_acids.get_amino_acid_acyl_name(trivial_name)#

Get the acyl (peptide linkage) form of an amino acid name.

Parameters:

trivial_name (str) – Trivial name of the amino acid (e.g., “glycine”)

Returns:

Acyl name (e.g., “glycyl”) if found, None otherwise

Return type:

str | None

orthonym.data.amino_acids.get_amino_acid_ate_stem(trivial_name)#

Get the ester ‘ate’ stem for an in-scope amino acid.

Parameters:

trivial_name (str) – Bare (stereo-free) trivial name of the amino acid, e.g. “alanine” (NOT “L-alanine”).

Returns:

The ‘ate’ stem (e.g. “alaninate”) if in scope, None otherwise (defer to the pre-existing systematic ester namer – diacid / 2-stereocentre AAs, and any non-standard amino acid, are never in this map).

Return type:

str | None

orthonym.data.amino_acids.GENERAL_ONLY_AMINO_ACIDS: Dict[str, str] = {'CC(C)C[C@H](N)[C@@H](O)CC(=O)O': 'statine', 'CC(NC(C)C(=O)O)C(=O)O': 'alanopine', 'CC(NC(CCCN)C(=O)O)C(=O)O': 'octopinic acid', 'CC(NC(CCCNC(=N)N)C(=O)O)C(=O)O': 'octopine', 'CC(NCC(=O)O)C(=O)O': 'strombine', 'CC(NCCC(=O)O)C(=O)O': 'beta-alanopine', 'CC(NCCS(=O)(=O)O)C(=O)O': 'tauropine', 'CN(CC(=O)O)C(=N)N': 'creatine', 'CNCC(=O)O': 'sarcosine', 'CN[C@@H](Cc1c[nH]c2ccccc12)C(=O)O': 'abrine', 'C[C@@H](N[C@@H](CCCCN)C(=O)O)C(=O)O': 'lysopine', 'N=C(N)NCCCC(NC(CCC(=O)O)C(=O)O)C(=O)O': 'nopaline', 'N=C(N)NCCS(=O)(=O)O': 'taurocyamine', 'N=C(N)NCCS(=O)O': 'hypotaurocyamine', 'NCCCS(=O)(=O)O': 'homotaurine', 'NCCS(=O)(=O)O': 'taurine', 'N[C@H](CCC[C@H](N)C(=O)O)C(=O)O': 'diaminopimelic acid', 'O=C(O)CNC(CO)(CO)CO': 'tricine'}#

Canonical SMILES -> trivial name for amino acids withdrawn from the PIN path.

orthonym.data.amino_acids.record_if_non_pin_amino_acid_name(name)#

Record name as a non-PIN fragment when it is a kept trivial amino-acid name without Blue Book evidence (NON_PIN_AMINO_ACID_NAMES); no-op otherwise.