Molecular properties
MolecularGraph.apparent_valence
— Methodapparent_valence(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of total bond order incident to 1 to $n$th atoms of the given molecule.
MolecularGraph.atom_counter
— Methodatom_counter(mol::SimpleMolGraph) -> Dict{Symbol,Int}
Count the number of atoms and return symbol => count dict.
MolecularGraph.atom_symbol
— Methodatom_symbol(mol::MolGraph) -> Vector{Symbol}
Return a vector of size $n$ representing atom symbols of 1 to $n$th atoms of the given molecule.
MolecularGraph.bond_order
— Methodbond_order(mol::MolGraph) -> Vector{Int}
Return a vector of size $n$ representing bond order of 1 to $n$th bonds of the given molecule.
MolecularGraph.charge
— Methodcharge(mol::MolGraph) -> Vector{Int}
Return a vector of size $n$ representing atom charges of 1 to $n$th atoms of the given molecule.
MolecularGraph.connectivity
— Methodconnectivity(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of total atoms (implicit and explicit) connected to 1 to $n$th atoms of the given molecule.
This property corresponds to SMARTS X
query.
MolecularGraph.edge_which_ring
— Methodedge_which_ring(mol::SimpleMolGraph) -> Vector{Vector{Int}}
Return a vector of size $n$ representing sssr
membership of 1 to $n$th bonds of the given molecule.
SSSR membership is represented as a set of SSSR indices assigned to each rings. This means bonds that have the same SSSR index belong to the same SSSR.
MolecularGraph.empirical_formula
— Methodempirical_formula(mol::MolGraph) -> String
Return the empirical formula in Hill system.
MolecularGraph.explicit_hydrogens
— Methodexplicit_hydrogens(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of explicit hydrogens connected to 1 to $n$th atoms of the given molecule.
"Explicit" means hydrogens are explicitly represented as graph nodes.
MolecularGraph.fused_rings
— Methodfused_rings(mol::SimpleMolGraph{T}) -> Vector{Vector{T}}
Return vectors of fused ring node sets.
A fused ring is defined as a 2-edge connected components in terms of graph theory. Spirocyclic structures are considered to be part of a fused ring.
MolecularGraph.heavy_atom_count
— Methodheavy_atom_count(mol::SimpleMolGraph) -> Int
Return the total number of non-hydrogen atoms.
MolecularGraph.heavy_atoms
— Methodheavy_atoms(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of non-hydrogen atoms connected to 1 to $n$th atoms of the given molecule.
MolecularGraph.hybridization
— Methodhybridization(mol::SimpleMolGraph) -> Vector{Int}
Returns a vector of size $n$ representing the orbital hybridization symbols (:sp3
, :sp2
, :sp
or :none
) of 1 to $n$th atoms of the given molecule.
The hybridization value in inorganic atoms and non-typical organic atoms will be :none
(e.g. s, sp3d and sp3d2 orbitals). Note that this is a simplified geometry descriptor for substructure matching and does not reflect actual molecular orbital hybridization.
MolecularGraph.hydrogen_acceptor_count
— Methodhydrogen_acceptor_count(mol::SimpleMolGraph) -> Int
Return the total number of hydrogen bond acceptors (N, O and F).
MolecularGraph.hydrogen_donor_count
— Methodhydrogen_donor_count(mol::SimpleMolGraph) -> Int
Return the total number of hydrogen bond donors (O and N attached to hydrogens).
MolecularGraph.implicit_hydrogens
— Methodimplicit_hydrogens(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of implicit hydrogens connected to 1 to $n$th atoms of the given molecule.
"Implicit" means hydrogens are not represented as graph nodes, but it can be infered from the intrinsic valence of typical organic atoms.
MolecularGraph.is_aromatic
— Methodis_aromatic(mol::SimpleMolGraph) -> Vector{Bool}
Returns a vector of size $n$ representing whether 1 to $n$th atoms of the given molecule belong to an aromatic ring or not.
See is_ring_aromatic
.
MolecularGraph.is_edge_aromatic
— Methodis_edge_aromatic(mol::SimpleMolGraph) -> Vector{Bool}
Returns a vector of size $n$ representing whether 1 to $n$th bonds of the given molecule belong to an aromatic ring or not.
See is_ring_aromatic
.
MolecularGraph.is_edge_in_ring
— Methodis_edge_in_ring(mol::MolGraph) -> Vector{Bool}
Return a vector of size $n$ representing whether 1 to $n$th bonds of the given molecule belong to a ring or not.
MolecularGraph.is_in_ring
— Methodis_in_ring(mol::MolGraph) -> Vector{Bool}
Return a vector of size $n$ representing whether 1 to $n$th atoms of the given molecule belong to a ring or not.
MolecularGraph.is_ring_aromatic
— Methodis_ring_aromatic(mol::SimpleMolGraph) -> Vector{Bool}
Returns a vector of size $n$ representing whether first to $n$-th rings of a given molecule are aromatic or not.
This is a binary descriptor based on a chemoinformatic algorithm and may not reflect actual molecular orbitals. Atypical aromaticities such as Moebius aromaticity are not considered.
MolecularGraph.is_rotatable
— Methodis_rotatable(mol::SimpleMolGraph) -> Vector{Bool}
Return a vector of size $n$ representing whether 1 to $n$th bonds of the given molecule are rotatable or not.
MolecularGraph.lone_pair
— Methodlone_pair(mol::MolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of lone pairs of 1 to $n$th atoms of the given molecule.
MolecularGraph.molecular_formula
— Methodmolecular_formula(mol::MolGraph) -> String
Return the molecular formula in Hill system.
MolecularGraph.multiplicity
— Methodmultiplicity(mol::MolGraph) -> Vector{Int}
Return a vector of size $n$ representing atom multiplicities of 1 to $n$th atoms of the given molecule (1: non-radical, 2: radical, 3: biradical).
MolecularGraph.pi_electron
— Methodpi_electron(mol::SimpleMolGraph) -> Vector{Int}
Returns a vector of size $n$ representing the number of $\pi$ electrons of 1 to $n$th atoms of the given molecule.
The number of $\pi$ electrons is calculated as valence
- connectivity
. Typically, each atom connected to double bonds adds one pi electron for each, and each atom connected to a triple bond adds two pi electrons.
MolecularGraph.ring_count
— Methodring_count(mol::MolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of sssr
that 1 to $n$th atoms of the given molecule belong to.
This property corresponds to SMARTS R
query.
MolecularGraph.rotatable_count
— Methodrotatable_count(mol::SimpleMolGraph) -> Int
Return the total number of rotatable bonds.
MolecularGraph.smallest_ring
— Methodsmallest_ring(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the size of the smallest sssr
that 1 to $n$th atoms of the given molecule belong to.
If the node is not in a ring, the value would be 0. This property corresponds to SMARTS r
query.
MolecularGraph.sssr
— Methodsssr(mol::SimpleMolGraph{T}) -> Vector{Vector{T}}
Return vectors of ring nodes representing small set of smallest rings (SSSR).
See mincyclebasis
.
MolecularGraph.total_hydrogens
— Methodtotal_hydrogens(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the number of total hydrogens (implicit and explicit) connected to 1 to $n$th atoms of the given molecule.
This property corresponds to SMARTS H
query.
MolecularGraph.valence
— Methodvalence(mol::SimpleMolGraph) -> Vector{Int}
Return a vector of size $n$ representing the intrinsic valence of 1 to $n$th atoms of the given molecule.
The number of implicit hydrogens would be calculated based on the valence. The valence of a hypervalent atom or a non-organic atom is the same as its apparent_valence
. This property corresponds to SMARTS v
query.
MolecularGraph.which_fused_ring
— Methodwhich_fused_ring(mol::SimpleMolGraph) -> Vector{Vector{Int}}
Return a vector of size $n$ representing fused_rings
membership of 1 to $n$th atoms of the given molecule.
Fused ring membership is represented as a set of fused ring indices assigned to each fused rings. This means atoms that have the same fused ring index belong to the same fused ring.
MolecularGraph.which_ring
— Methodwhich_ring(mol::SimpleMolGraph) -> Vector{Vector{Int}}
Return a vector of size $n$ representing sssr
membership of 1 to $n$th nodes of the given graph.
SSSR membership is represented as a vector of SSSR indices assigned to each rings. This means nodes that have the same SSSR index belong to the same SSSR.
MolecularGraph.wclogp
— Methodwclogp(mol::GraphMol) -> Float64
Return predicted logP value calculated by using Wildman and Crippen method.
Reference
- Wildman, S. A. and Crippen, G. M. (1999). Prediction of Physicochemical Parameters by Atomic Contributions. Journal of Chemical Information and Modeling, 39(5), 868–873. https://doi.org/10.1021/ci990307l
MolecularGraph.wclogptype
— Methodwclogptype(mol::MolGraph)
Return Wildman-Crippen LogP atom types.