def GetGeometric(mol: pybel.Molecule, arc_file: str) -> dict: """Get all (20) geometrical descriptors. :param mol: the molecule :param arc_file: Path to MOPAC .arc file """ res = {} ChargeCoordinates = _ReadCoordinates(arc_file) res['W3DH'] = Calculate3DWienerWithH(ChargeCoordinates) res['W3D'] = Calculate3DWienerWithoutH(ChargeCoordinates) res['Petitj3D'] = CalculatePetitjean3DIndex(ChargeCoordinates) res['GeDi'] = CalculateGeometricalDiameter(ChargeCoordinates) res['TE'] = CalculateTopoElectronic(ChargeCoordinates) res['grav1'] = CalculateGravitational3D1(mol, ChargeCoordinates) # res['grav2'] = CalculateGravitational3D2(mol, ChargeCoordinates) res['rygr'] = CalculateRadiusofGyration(mol, ChargeCoordinates) res['Harary3D'] = CalculateHarary3D(ChargeCoordinates) res['AGDD'] = CalculateAverageGeometricalDistanceDegree(ChargeCoordinates) res['SEig'] = CalculateAbsEigenvalueSumOnGeometricMatrix(ChargeCoordinates) res['SPAN'] = CalculateSPANR(mol, ChargeCoordinates) res['ASPAN'] = CalculateAverageSPANR(mol, ChargeCoordinates) res['MEcc'] = CalculateMolecularEccentricity(mol, ChargeCoordinates) res.update(CalculatePrincipalMomentofInertia(mol, ChargeCoordinates)) res.update(CalculateRatioPMI(mol, ChargeCoordinates)) return res
def GetMoRSEVDWVolume(arc_file: str) -> dict: """Get all 3D-Morse descriptors from VDW Volume schemes. :param arc_file: Path to MOPAC .arc file """ ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateVDWVolumeMoRSE(ChargeCoordinates) return result
def GetMoRSESandersonElectronegativity(arc_file: str) -> dict: """Get all 3D-Morse descriptors from Sanderson Electronegativity schemes. :param arc_file: Path to MOPAC .arc file """ ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateSandersonElectronegativityMoRSE(ChargeCoordinates) return result
def GetMoRSEPolarizability(arc_file: str) -> dict: """Get all 3D-Morse descriptors from polarizability schemes. :param arc_file: Path to MOPAC .arc file """ ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculatePolarizabilityMoRSE(ChargeCoordinates) return result
def GetMoRSEAtomicNumber(mol: Chem.Mol, arc_file: str) -> dict: """Get all 3D-Morse descriptors from atomic number schemes. :param arc_file: Path to MOPAC .arc file """ ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateAtomicNumberMoRSE(mol, ChargeCoordinates) return result
def GetMoRSEMass(mol: Chem.Mol, arc_file: str) -> dict: """Get all 3D-Morse descriptors from on mass schemes. :param arc_file: Path to MOPAC .arc file """ ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateMassMoRSE(mol, ChargeCoordinates) return result
def GetMoRSEUnweighted(arc_file: str) -> dict: """Get all unweighted 3D-Morse descriptors. :param arc_file: Path to MOPAC .arc file """ ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateUnweightMoRSE(ChargeCoordinates) return result
def GetRDF(mol, arc_file): """Obtain all (180) RDF descriptors with different (un)weighted schemes.""" result = {} ChargeCoordinates = _ReadCoordinates(arc_file) result.update(CalculateUnweightRDF(ChargeCoordinates)) result.update(CalculateChargeRDF(ChargeCoordinates)) result.update(CalculateMassRDF(mol, ChargeCoordinates)) result.update(CalculatePolarizabilityRDF(ChargeCoordinates)) result.update(CalculateSandersonElectronegativityRDF(ChargeCoordinates)) result.update(CalculateVDWVolumeRDF(ChargeCoordinates)) return result
def GetChargeSA(arc_file, RadiusProbe=1.5, n_sphere_point=960): """Get atom symbol, charge and partial solvent-accessible surface areas for all atoms. :param arc_file: Path to MOPAC .arc file :param RadiusProbe: radius of the probe used to calculate SASA :param n_sphere_point: number of points per atom to calculate SASA """ ChargeCoordinates = _ReadCoordinates(arc_file) atoms = GetAtomClassList(ChargeCoordinates) FASA = asa.calculate_asa(atoms, RadiusProbe, n_sphere_point) res = [] for i in range(len(FASA)): res.append([ChargeCoordinates[i][0], ChargeCoordinates[i][4], FASA[i]]) return res
def GetMoRSE(mol: Chem.Mol, arc_file: str) -> dict: """Get all (210) 3D-Morse descriptors with different (un)weighted schemes. :param arc_file: Path to MOPAC .arc file """ result = {} ChargeCoordinates = _ReadCoordinates(arc_file) result.update(CalculateUnweightMoRSE(ChargeCoordinates)) result.update(CalculateChargeMoRSE(ChargeCoordinates)) result.update(CalculateMassMoRSE(mol, ChargeCoordinates)) result.update(CalculateAtomicNumberMoRSE(mol, ChargeCoordinates)) result.update(CalculatePolarizabilityMoRSE(ChargeCoordinates)) result.update(CalculateSandersonElectronegativityMoRSE(ChargeCoordinates)) result.update(CalculateVDWVolumeMoRSE(ChargeCoordinates)) return result
def GetRDFVDWVolume(mol, arc_file): """Obtain all RDF descriptors with VDW Volume schemes.""" ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateVDWVolumeRDF(ChargeCoordinates) return result
def GetRDFSandersonElectronegativity(mol, arc_file): """Obtain all RDF descriptors with Sanderson Electronegativity schemes.""" ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateSandersonElectronegativityRDF(ChargeCoordinates) return result
def GetRDFPolarizability(mol, arc_file): """Obtain all RDF descriptors with Polarizability schemes.""" ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculatePolarizabilityRDF(ChargeCoordinates) return result
def GetRDFMass(mol, arc_file): """Obtain all RDF descriptors with Mass schemes.""" ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateMassRDF(mol, ChargeCoordinates) return result
def GetRDFUnweighed(mol, arc_file): """Obtain all Unweighed RDF descriptors.""" ChargeCoordinates = _ReadCoordinates(arc_file) result = CalculateUnweightRDF(ChargeCoordinates) return result