⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smilesparsertest.java

📁 化学图形处理软件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
		IMolecule mol = sp.parseSmiles(sodiumPhenoxide);		assertEquals(8, mol.getAtomCount());		assertEquals(7, mol.getBondCount());				IMoleculeSet fragments = ConnectivityChecker.partitionIntoMolecules(mol);		int fragmentCount = fragments.getMoleculeCount();		assertEquals(2, fragmentCount);		org.openscience.cdk.interfaces.IMolecule mol1 = fragments.getMolecule(0);		org.openscience.cdk.interfaces.IMolecule mol2 = fragments.getMolecule(1);		// one should have one atom, the other seven atoms		// in any order, so just test the difference		assertEquals(6, Math.abs(mol1.getAtomCount() - mol2.getAtomCount()));	}	/**	 *  Example taken from 'Handbook of Chemoinformatics', Gasteiger, 2003, page 89	 *  (Part I).	 */	public void testConnectedByRingClosure() throws Exception {		String sodiumPhenoxide = "C1.O2.C12";		IMolecule mol = sp.parseSmiles(sodiumPhenoxide);		assertEquals(3, mol.getAtomCount());		assertEquals(2, mol.getBondCount());				IMoleculeSet fragments = ConnectivityChecker.partitionIntoMolecules(mol);		int fragmentCount = fragments.getMoleculeCount();		assertEquals(1, fragmentCount);		org.openscience.cdk.interfaces.IMolecule mol1 = fragments.getMolecule(0);		assertEquals(3, mol1.getAtomCount());	}	/**	 *  Example taken from 'Handbook of Chemoinformatics', Gasteiger, 2003, page 89	 *  (Part I).	 */	public void testReaction() throws Exception {		String reactionSmiles = "O>>[H+].[OH-]";		IReaction reaction = sp.parseReactionSmiles(reactionSmiles);		assertEquals(1, reaction.getReactantCount());		assertEquals(2, reaction.getProductCount());	}	/**	 *  Example taken from 'Handbook of Chemoinformatics', Gasteiger, 2003, page 90	 *  (Part I).	 */	public void testReactionWithAgents() throws Exception {		String reactionSmiles = "CCO.CC(=O)O>[H+]>CC(=O)OCC.O";		IReaction reaction = sp.parseReactionSmiles(reactionSmiles);		assertEquals(2, reaction.getReactantCount());		assertEquals(2, reaction.getProductCount());		assertEquals(1, reaction.getAgents().getMoleculeCount());				assertEquals(1, reaction.getAgents().getMolecule(0).getAtomCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount() throws Exception {		String smiles = "C";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(1, mol.getAtomCount());		assertEquals(4, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount2() throws Exception {		String smiles = "CC";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(2, mol.getAtomCount());		assertEquals(3, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount2b() throws Exception {		String smiles = "C=C";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(2, mol.getAtomCount());		assertEquals(2, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount2c() throws Exception {		String smiles = "C#C";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(2, mol.getAtomCount());		assertEquals(1, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount3() throws Exception {		String smiles = "CCC";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(3, mol.getAtomCount());		assertEquals(2, mol.getAtom(1).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount4() throws Exception {		String smiles = "C1CCCCC1";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(6, mol.getAtomCount());		assertEquals(2, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount4a() throws Exception {		String smiles = "c1=cc=cc=c1";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(6, mol.getAtomCount());		assertEquals(1, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testImplicitHydrogenCount4b() throws Exception {		String smiles = "c1ccccc1";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(6, mol.getAtomCount());		assertEquals(1, mol.getAtom(0).getHydrogenCount());	}	/**	 *  A unit test for JUnit	 */	public void testHOSECodeProblem() throws Exception {		String smiles = "CC=CBr";		IMolecule mol = sp.parseSmiles(smiles);		assertEquals(4, mol.getAtomCount());		assertEquals("Br", mol.getAtom(3).getSymbol());	}	/**	 *  A unit test for JUnit	 */	public void testPyridine() throws Exception {		IMolecule mol = sp.parseSmiles("c1ccncc1");		assertEquals(6, mol.getAtomCount());		// it's a bit hard to detect two double bonds in the pyrrole ring		// but I do can check the total order in the whole molecule		double totalBondOrder = 0.0;		Iterator bonds = mol.bonds();		while (bonds.hasNext())			totalBondOrder += ((IBond)bonds.next()).getOrder();		assertEquals(9.0, totalBondOrder, 0.001);		// I can also check wether the total neighbor count around the		// nitrogen is 3, all single bonded		org.openscience.cdk.interfaces.IAtom nitrogen = mol.getAtom(3);		// the second atom		assertEquals("N", nitrogen.getSymbol());		totalBondOrder = 0.0;		List bondsList = mol.getConnectedBondsList(nitrogen);		assertEquals(2, bondsList.size());		for (int i = 0; i < bondsList.size(); i++)		{			totalBondOrder += ((IBond)bondsList.get(i)).getOrder();		}		assertEquals(3.0, totalBondOrder, 0.001);	}	/**	 * @cdk.bug 1306780	 */	public void testParseK() throws CDKException {		IMolecule mol = sp.parseSmiles("C=CCC(=NOS(=O)(=O)[O-])SC1OC(CO)C(O)C(O)C1(O).[Na+]");		assertNotNull(mol);		assertEquals(23, mol.getAtomCount());		mol = sp.parseSmiles("C=CCC(=NOS(=O)(=O)[O-])SC1OC(CO)C(O)C(O)C1(O).[K]");		assertNotNull(mol);		assertEquals(23, mol.getAtomCount());		mol = sp.parseSmiles("C=CCC(=NOS(=O)(=O)[O-])SC1OC(CO)C(O)C(O)C1(O).[K+]");		assertNotNull(mol);		assertEquals(23, mol.getAtomCount());	}			/**	 * @cdk.bug 1459299	 */	public void testBug1459299() throws Exception {		IMolecule mol = sp.parseSmiles("Cc1nn(C)cc1[C@H]2[C@H](C(=O)N)C(=O)C[C@@](C)(O)[C@@H]2C(=O)N");		assertNotNull(mol);		assertEquals(22, mol.getAtomCount());	}		/**	 * @cdk.bug 1365547	 */	public void testBug1365547() throws Exception {		IMolecule mol = sp.parseSmiles("c2ccc1[nH]ccc1c2");		assertNotNull(mol);		assertEquals(9, mol.getAtomCount());		assertTrue(mol.getBond(0).getFlag(CDKConstants.ISAROMATIC));	}		/**	 * @cdk.bug 1365547	 */	public void testBug1365547_2() throws Exception {		IMolecule mol = sp.parseSmiles("[H]c1c([H])c(c([H])c2c([H])c([H])n([H])c12)Br");		assertNotNull(mol);		assertEquals(16, mol.getAtomCount());		assertEquals(17, mol.getBondCount());		for (int i=0; i<17; i++) {			IBond bond = mol.getBond(i);			if (bond.getAtom(0).getSymbol().equals("H") ||					bond.getAtom(0).getSymbol().equals("Br") ||					bond.getAtom(1).getSymbol().equals("H") ||					bond.getAtom(1).getSymbol().equals("Br")) {				assertFalse(bond.getFlag(CDKConstants.ISAROMATIC));			} else {				assertTrue(bond.getFlag(CDKConstants.ISAROMATIC));			}		}	}		/**	 * @cdk.bug 1235852	 */	public void testBug1235852() throws Exception {		//                             0 1 234 56 7 890 12 3456 78		IMolecule mol = sp.parseSmiles("O=C(CCS)CC(C)CCC2Cc1ccsc1CC2");		assertNotNull(mol);		assertEquals(19, mol.getAtomCount());		assertEquals(20, mol.getBondCount());		// test only option for delocalized bond system		assertEquals(4.0, mol.getBondOrderSum(mol.getAtom(12)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(13)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(14)), 0.001);		assertEquals(2.0, mol.getBondOrderSum(mol.getAtom(15)), 0.001);		assertEquals(4.0, mol.getBondOrderSum(mol.getAtom(16)), 0.001);	}		/**	 * @cdk.bug 1519183	 */	public void testBug1519183() throws Exception {		//                             0    12345  6		IMolecule mol = sp.parseSmiles("c%101ccccc1.O%10"); // phenol		assertNotNull(mol);		assertEquals(7, mol.getAtomCount());		assertEquals(7, mol.getBondCount());	}		/**	 * @cdk.bug 1530926	 */	public void testBug1530926() throws Exception {		//                              0      12345   6		IMolecule mol = sp.parseSmiles("[n+]%101ccccc1.[O-]%10");		assertNotNull(mol);		assertEquals(7, mol.getAtomCount());		assertEquals(7, mol.getBondCount());		for (int i=0; i<7; i++) {			IBond bond = mol.getBond(i);			if (bond.getAtom(0).getSymbol().equals("O") ||					bond.getAtom(1).getSymbol().equals("O")) {				assertFalse(bond.getFlag(CDKConstants.ISAROMATIC));			} else {				assertTrue(bond.getFlag(CDKConstants.ISAROMATIC));			}		}	}	/**	 * @cdk.bug 1541333	 */	public void testBug1541333() throws Exception {		//                              01  2 345  67  8 9 0 12 3 4  5 67 89  0  1 2		IMolecule mol1 = sp.parseSmiles("OC(=O)CSC1=NC=2C=C(C=CC2N1C=3C=CC=CC3)N(=O)O");		assertNotNull(mol1);		assertEquals(23, mol1.getAtomCount());		assertEquals(25, mol1.getBondCount());		IMolecule mol2 = sp.parseSmiles("OC(=O)CSc1nc2cc(ccc2n1c3ccccc3)N(=O)O");		assertNotNull(mol2);		assertEquals(23, mol2.getAtomCount());		assertEquals(25, mol2.getBondCount());		// do some checking		assertEquals(2.0, mol1.getBond(1).getOrder(), 0.0001);		assertEquals(2.0, mol2.getBond(1).getOrder(), 0.0001);		assertTrue(mol1.getBond(7).getFlag(CDKConstants.ISAROMATIC));		assertTrue(mol2.getBond(7).getFlag(CDKConstants.ISAROMATIC));	}	/**	 * @cdk.bug 1719287	 */	public void testBug1719287() throws Exception {		//                             0  1 23 45		IMolecule mol = sp.parseSmiles("OC(=O)[C@@H](N)CC[S+1](C)C[C@@H](O1)[C@@H](O)[C@@H](O)[C@@H]1n(c3)c(n2)c(n3)c(N)nc2");		assertNotNull(mol);		assertEquals(6, mol.getAtomCount());		assertEquals(6, mol.getBondCount());		// test only option for delocalized bond system		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(0)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(1)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(2)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(3)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(4)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(5)), 0.001);				}		/**	 * @cdk.bug 1503541	 */	public void testBug1503541() throws Exception {		//                             0  1 23 45		IMolecule mol = sp.parseSmiles("C=1C=CC=CC=1"); // phenol		assertNotNull(mol);		assertEquals(6, mol.getAtomCount());		assertEquals(6, mol.getBondCount());		// test only option for delocalized bond system		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(0)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(1)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(2)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(3)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(4)), 0.001);		assertEquals(3.0, mol.getBondOrderSum(mol.getAtom(5)), 0.001);				}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -