private static double[] listpolarizability(IAtomContainer container, int[][] dmat) throws CDKException { int natom = container.getAtomCount(); double[] polars = new double[natom]; Polarizability polar = new Polarizability(); for (int i = 0; i < natom; i++) { IAtom atom = container.getAtom(i); try { polars[i] = polar.calculateGHEffectiveAtomPolarizability(container, atom, false, dmat); } catch (Exception ex1) { throw new CDKException("Problems with assign Polarizability due to " + ex1.toString(), ex1); } } return polars; }
/** * Gets the polarizabilitiyFactorForAtom. * *@param atomContainer AtomContainer *@param atom atom for which the factor should become known *@return The polarizabilitiyFactorForAtom value */ public double getPolarizabilitiyFactorForAtom(IAtomContainer atomContainer, IAtom atom) { IAtomContainer acH = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer); addExplicitHydrogens(acH); return getKJPolarizabilityFactor(acH, atom); }
/** * Constructor for the EffectiveAtomPolarizabilityDescriptor object */ public EffectiveAtomPolarizabilityDescriptor() { pol = new Polarizability(); }
/** * A unit test for JUnit */ @Test public void testGetPolarizabilitiyFactorForAtom_IAtomContainer_IAtom() throws Exception { Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("NCCN(C)(C)"); double result = pol.getPolarizabilitiyFactorForAtom(mol, mol.getAtom(0)); Assert.assertFalse(Double.isNaN(result)); result = pol.getPolarizabilitiyFactorForAtom(mol, mol.getAtom(3)); Assert.assertFalse(Double.isNaN(result)); }
/** * A unit test for JUnit with methane */ @Test public void testCalculateKJMeanMolecularPolarizability() throws Exception { double testResult = 2.61; Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("C"); double result = pol.calculateKJMeanMolecularPolarizability(mol); Assert.assertEquals(testResult, result, 0.01); }
/** * A unit test for JUnit with n,n-dimethyl ethylendiamine */ @Test public void testCalculateBondPolarizability_IAtomContainer_IBond() throws Exception { Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("NCCN(C)(C)"); double result = pol.calculateBondPolarizability((IAtomContainer) mol, mol.getBond(0)); Assert.assertFalse(Double.isNaN(result)); }
Double originalBondOrderSum = atom.getBondOrderSum(); Order originalMaxBondOrder = atom.getMaxBondOrder(); polarizability = pol.calculateGHEffectiveAtomPolarizability(ac, atom, 100, true);
polarizabilitiyFactor = 1.064;/* 1.064 */ } else if (atomContainer.getMaximumBondOrder(atom) == IBond.Order.DOUBLE) { if (getNumberOfHydrogen(atomContainer, atom) == 0) { polarizabilitiyFactor = 1.382; } else { polarizabilitiyFactor = 3.20;/* 3.19 */ } else if (atomContainer.getMaximumBondOrder(atom) == IBond.Order.DOUBLE) { if (getNumberOfHydrogen(atomContainer, atom) == 0) { polarizabilitiyFactor = 3.51; } else {
polarizabilitiyFactor = 1.064;/* 1.064 */ } else if (atomContainer.getMaximumBondOrder(atom) == IBond.Order.DOUBLE) { if (getNumberOfHydrogen(atomContainer, atom) == 0) { polarizabilitiyFactor = 1.382; } else { polarizabilitiyFactor = 3.20;/* 3.19 */ } else if (atomContainer.getMaximumBondOrder(atom) == IBond.Order.DOUBLE) { if (getNumberOfHydrogen(atomContainer, atom) == 0) { polarizabilitiyFactor = 3.51; } else {
private static double[] listpolarizability(IAtomContainer container, int[][] dmat) throws CDKException { int natom = container.getAtomCount(); double[] polars = new double[natom]; Polarizability polar = new Polarizability(); for (int i = 0; i < natom; i++) { IAtom atom = container.getAtom(i); try { polars[i] = polar.calculateGHEffectiveAtomPolarizability(container, atom, false, dmat); } catch (Exception ex1) { throw new CDKException("Problems with assign Polarizability due to " + ex1.toString(), ex1); } } return polars; }
/** * Gets the polarizabilitiyFactorForAtom. * *@param atomContainer AtomContainer *@param atom atom for which the factor should become known *@return The polarizabilitiyFactorForAtom value */ public double getPolarizabilitiyFactorForAtom(IAtomContainer atomContainer, IAtom atom) { IAtomContainer acH = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer); addExplicitHydrogens(acH); return getKJPolarizabilityFactor(acH, atom); }
/** * A unit test for JUnit with Ethyl chloride */ @Test public void testcalculateGHEffectiveAtomPolarizability_Ethyl_chloride() throws Exception { double testResult = 4.62; /* from thesis Wolfgang Hanebeck, TUM */ Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("CCCl"); double result = pol.calculateGHEffectiveAtomPolarizability(mol, mol.getAtom(2), 100, true); Assert.assertEquals(testResult, result, 0.01); }
/** * calculate bond polarizability. * *@param atomContainer AtomContainer *@param bond Bond bond for which the polarizabilitiy should be calculated *@return polarizabilitiy */ public double calculateBondPolarizability(IAtomContainer atomContainer, IBond bond) { double polarizabilitiy = 0; IAtomContainer acH = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer); addExplicitHydrogens(acH); if (bond.getAtomCount() == 2) { polarizabilitiy += getKJPolarizabilityFactor(acH, bond.getBegin()); polarizabilitiy += getKJPolarizabilityFactor(acH, bond.getEnd()); } return (polarizabilitiy / 2); }
/** * A unit test for JUnit with Ethoxy ethane */ @Test public void testcalculateGHEffectiveAtomPolarizability_Ethoxy_ethane() throws Exception { double testResult = 5.21; /* from thesis Wolfgang Hanebeck, TUM */ Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("CCOCC"); double result = pol.calculateGHEffectiveAtomPolarizability(mol, mol.getAtom(2), 100, true); Assert.assertEquals(testResult, result, 0.01); }
/** * calculate bond polarizability. * *@param atomContainer AtomContainer *@param bond Bond bond for which the polarizabilitiy should be calculated *@return polarizabilitiy */ public double calculateBondPolarizability(IAtomContainer atomContainer, IBond bond) { double polarizabilitiy = 0; IAtomContainer acH = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer); addExplicitHydrogens(acH); if (bond.getAtomCount() == 2) { polarizabilitiy += getKJPolarizabilityFactor(acH, bond.getBegin()); polarizabilitiy += getKJPolarizabilityFactor(acH, bond.getEnd()); } return (polarizabilitiy / 2); }
/** * A unit test for JUnit with Isopentyl iodide */ @Test public void testcalculateGHEffectiveAtomPolarizability_Isopentyl_iodide() throws Exception { double testResult = 8.69; /* from thesis Wolfgang Hanebeck, TUM */ Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("C(C)(C)CCI"); double result = pol.calculateGHEffectiveAtomPolarizability(mol, mol.getAtom(5), 100, true); Assert.assertEquals(testResult, result, 0.01); }
/** * calculates the mean molecular polarizability as described in paper of Kang and Jhorn. * *@param atomContainer AtomContainer *@return polarizabilitiy */ public double calculateKJMeanMolecularPolarizability(IAtomContainer atomContainer) { double polarizabilitiy = 0; IAtomContainer acH = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer); addExplicitHydrogens(acH); for (int i = 0; i < acH.getAtomCount(); i++) { polarizabilitiy += getKJPolarizabilityFactor(acH, acH.getAtom(i)); } return polarizabilitiy; }
/** * A unit test for JUnit with n,n-dimethyl ethylendiamine */ @Test public void testCalculateGHEffectiveAtomPolarizability_IAtomContainer_IAtom_Int_Boolean() throws Exception { double[] testResult = {4.73, 6.92}; Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("NCCN(C)(C)"); double result = pol.calculateGHEffectiveAtomPolarizability(mol, mol.getAtom(0), 100, true); Assert.assertEquals(testResult[0], result, 0.01); result = pol.calculateGHEffectiveAtomPolarizability(mol, mol.getAtom(3), 100, true); Assert.assertEquals(testResult[1], result, 0.01); }
/** * calculates the mean molecular polarizability as described in paper of Kang and Jhorn. * *@param atomContainer AtomContainer *@return polarizabilitiy */ public double calculateKJMeanMolecularPolarizability(IAtomContainer atomContainer) { double polarizabilitiy = 0; IAtomContainer acH = atomContainer.getBuilder().newInstance(IAtomContainer.class, atomContainer); addExplicitHydrogens(acH); for (int i = 0; i < acH.getAtomCount(); i++) { polarizabilitiy += getKJPolarizabilityFactor(acH, acH.getAtom(i)); } return polarizabilitiy; }
/** * A unit test for JUnit with Allyl bromide */ @Test public void testcalculateGHEffectiveAtomPolarizability_Allyl_bromide() throws Exception { double testResult = 6.17; /* from thesis Wolfgang Hanebeck, TUM */ Polarizability pol = new Polarizability(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IAtomContainer mol = sp.parseSmiles("C=CCBr"); double result = pol.calculateGHEffectiveAtomPolarizability(mol, mol.getAtom(3), 100, true); Assert.assertEquals(testResult, result, 0.01); }