Molecule

class pyCRS.Molecule

This class stores inforation about a molecule and serves as the main interface for accessing estimated properties.

Attributes

area

The COSMO surface area of the molecule

bond_energy

The Bond Energy (in Hartrees) for the molecule in the COSMO conductor phase.

dispersion

The dispersion energy

formula

The molecular formula

gas_phase_bond_energy

The Bond Energy (in Hartrees) for the molecule in the gas phase

is_valid

A bool that indicates whether the molecule is valid or if there were errors in processing it (e.g., invalid SMILESS)

method

The method (COSMO-RS, COSMO-SAC, etc.) for which the estimate is made.

molar_mass

The molar mass in g/mol

nring

The nring parameter used in COSMO-RS

parameters

A dictionary of parameters that can be used for certain models (e.g., vapor pressure model parameters)

properties

A dictionary of property values for temperature-independent properties

properties_tdep

A dictionary of (temperature,property) pairs for temperature-dependent properties

smiles

The SMILES string of a molecule, if available

volume

The COSMO volume of the molecule

Methods

get_sigma_profile(self: pyCRS_internal.Molecule)Dict[str, List[float]]

Returns a dictionary of sigma profiles values. For COSMO-RS, the dictionary has two entries (Total Profile and H-Bonding Profile). For COSMO-SAC, the dictionary has Total Profile, OH Profile, and OT Profile entries.

Example

import pyCRS
mol = pyCRS.Input.read_smiles("CCCCCN")
pyCRS.FastSigma.estimate(mol, method='COSMO-RS', model = 'FS1', display=False)
for k,v in mol.get_sigma_profile().items():
    print(k, v)
H-Bonding Profile [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051576871269907, 0.093772696234738, ... , 0.36159288378918, 0.14796979638662, 0.0]
Total Profile [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.051576871269907, 0.094440478268766, ... , 0.36159288378918, 0.147976661591423, 0.0]
get_tdep_values(self: pyCRS_internal.Molecule, arg0: str)Tuple[List[float], List[float]]

Returns a tuple of (temperatures, values) for a temperature-dependent property given as an argument to the function.

Example

import pyCRS
mol = pyCRS.Input.read_smiles("OCCCCCC")
pyCRS.PropPred.estimate(mol, 'vaporpressure', temperatures=list(range(270,330,10)))
unit = pyCRS.PropPred.units['vaporpressure']
print( "Temperature (K)".rjust(15)+f'Vapor pressure ({unit})'.rjust(25) )
for temp, val in zip(*mol.get_tdep_values('vaporpressure')):
    print(f'{temp:>15.3f}{val:>25.3f}')
Temperature (K)     Vapor pressure (bar)
        270.000                    0.000
        280.000                    0.000
        290.000                    0.001
        300.000                    0.001
        310.000                    0.003
        320.000                    0.006
has_missing_atoms(self: pyCRS_internal.Molecule, arg0: str)bool
missing_atoms(self: pyCRS_internal.Molecule, arg0: str)List[str]

A list of atom symbols which could not be mapped to a descriptor