orthonym.data.bicyclo_systems#
Note
Internal API. Names and behaviour may change between releases.
Retained names and data for bicyclic ring systems.
Provides lookup tables for bicyclic compounds that have retained (trivial) names preferred over systematic bicyclo[x.y.z] nomenclature.
IUPAC Reference: Blue Book 2013, (Bridged bicyclic hydrocarbons)
The bicyclo descriptor format is bicyclo[x.y.z] where: - x, y, z are the number of atoms in each bridge (excluding bridgeheads) - Values are sorted descending: x >= y >= z - Total carbons = x + y + z + 2 (the +2 accounts for bridgehead carbons)
- orthonym.data.bicyclo_systems.get_retained_bicyclo_name(canonical_smiles)#
Get the retained name for a bicyclic compound if one exists.
- Parameters:
canonical_smiles (str) – RDKit canonical SMILES string
- Returns:
Retained name if exists, None otherwise
- Return type:
str | None
Examples
>>> get_retained_bicyclo_name("C1C2CC3CC1CC(C2)C3") 'adamantane' >>> get_retained_bicyclo_name("C1CC2CCC1C2") # bicyclo[2.2.1]heptane, None >>> get_retained_bicyclo_name("C1CC2CCC1CN2") # isoquinuclidine, PA1 R6 None >>> get_retained_bicyclo_name("C1CC2CCC1CC2") # bicyclo[2.2.2]octane None
- orthonym.data.bicyclo_systems.get_bicyclo_by_descriptor(descriptor)#
Get the standard descriptor format for a bicyclo system.
Validates that the descriptor is in the correct format.
- Parameters:
descriptor (str) – Bicyclo descriptor string (e.g., “bicyclo[2.2.1]”)
- Returns:
Normalized descriptor if valid, None otherwise
- Return type:
str | None
Examples
>>> get_bicyclo_by_descriptor("bicyclo[2.2.1]") 'bicyclo[2.2.1]' >>> get_bicyclo_by_descriptor("invalid") None
- orthonym.data.bicyclo_systems.is_retained_bicyclo(canonical_smiles)#
Check if a bicyclic compound has a retained name.
- Parameters:
canonical_smiles (str) – RDKit canonical SMILES string
- Returns:
True if compound has a retained name
- Return type:
bool
Examples
>>> is_retained_bicyclo("C1C2CC3CC1CC(C2)C3") # adamantane True >>> is_retained_bicyclo("C1CC2CCC1C2") # bicyclo[2.2.1]heptane, False >>> is_retained_bicyclo("C1CC2CCC1CC2") # bicyclo[2.2.2]octane False